Laravel 5的授权服务中存储的功能在哪里?

时间:2016-02-04 19:47:20

标签: php laravel laravel-5.1

Laravel文档中Authorization服务的部分说明了一些示例,例如:

// Models
if ($request->user()->can('update-post', $post)) {
    // Update Post...
}

// Views
@can('update-post', $post)
    <a href="/post/{{ $post->id }}/edit">Edit Post</a>
@endcan

但是,没有任何类型的migrationschema

abilities的存储方式和位置在哪里?

1 个答案:

答案 0 :(得分:0)

定义授权规则的工作方式。也许这将涉及数据库表或其他数据,但它将全部由您自定义。例如,请查看"Defining Abilities" section of the docs,了解如何实施update-post能力。

AuthServiceProvider

public function boot(GateContract $gate)
{
    $this->registerPolicies($gate);

    $gate->define('update-post', function ($user, $post) {
        return $user->id === $post->user_id;
    });
}

这只是检查帖子上的user_id是否与user_id中的传递相同。但这是您定义特定逻辑的地方。

Laracasts有一个非常棒的video series on ACL可以清除很多这个。