Laravel AuthServiceProvider代码说明

时间:2015-10-29 01:40:05

标签: laravel-5.1

我开始在Laravel 5.1中使用Gate,我从互联网上的某些地方获得了此代码。

<?php    

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

    /**
     * NOTE!!
     * First time migration will fails, because permissions table doesn't exists.
     */
    foreach($this->getPermissions() as $permission) {
        $gate->define($permission->path, function($user) use ($permission) {

            return $user->hasRole($permission->roles);
        });
    }
}

我的问题是,function($user) use ($permission) {中的$gate->define($permission->path, function($user) use ($permission) {是什么?为什么在use之后有function()

如果有一些参考资料,我很乐意知道/阅读它。

1 个答案:

答案 0 :(得分:0)

已在PHP文档中进行了描述。 请参阅http://php.net/manual/en/functions.anonymous.php的示例3。

  

闭包还可以从父作用域继承变量。必须将任何此类变量传递给使用语言构造。

你的案子是

    $user->hasRole($permission->roles)

是必要的,以便使用$ permission变量。