flxxyz

1397 经验值

还是放弃了。。收费还是可以保留的

v-validate="{rules: {required: true, min: 6, confirmed: 'password'}"

v-validate data-vv-rules="required|min:6|confirmed:password" data-vv-as="确认密码"

不能共存,否则会编译错误,解决方法:去除 v-validate="..."

``
app/User.php

use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Ultraware\Roles\Traits\HasRoleAndPermission;
use Ultraware\Roles\Contracts\HasRoleAndPermission as HasRoleAndPermissionContract;

class User extends Model implements HasRoleAndPermissionContract
{

use HasRoleAndPermission;

``

laravel5.4的同学如果有问题可以看看这里,能不能解决你的问题

php artisan migrate

如果出现下面的错误,将 app/Providers/AppServiceProvider.php 里的boot方法加上 Schema::defauleStringLength(120), 这里(官方文档)[1]写的191对我没效果,如果你有效就先用把

Specified key was too long error

新建测试数据

php artisan tinker
factory('App\User')->create()  // 新建一个用户
factory('App\Post')->create()  // 这条创建文章可以多执行几次
exit  // 退出

新建模型

public function owns($post) {
    return $this->id == $post->user_id;
}

AuthServiceProvider.php

boot() 方法写入

$this->registerPolicies();
Gate::define('show-post',function($user,$post){
    return $user->owns($post);
});

新建控制器

php artisan make:controller PostController -r    // 出现教主出现的效果

show() 方法里写

$post = Post::findOrFail($id);
Auth::loginUsingId(1);
return view('post.show', ['post' => $post]);

post目录下的视图文件show.blade.php

<h1>{ $post->title }</h1>
@can('show-post', $post)
    <a href="#">编辑文章</a>
@endcan

视图里写这些足够了
验证用户权限,就在控制器里的 Auth::loginUsingId(1) 修改值

当然如果还有错误的话,那应该是你没有用PHPstom的问题,引入类

啊哈,老大可以的,教别人有新思路了

现在使用laravel-cors基本都会报错不存在cors,就需要下面这样类似的方法添加了

protected $middlewareGroups = [
'cors' =>[
\Barryvdh\Cors\HandleCors::class,
]
]

好棒呀,我在其它地方看的5.2版本的laravel教程,走了很多弯路,出现的错误去查询是不是被丢弃的功能。
现在看了5.4的新特性,真的觉得又方便太多了