如何将$ role-> name传递给函数?

时间:2017-02-23 15:14:02

标签: laravel laravel-5 datatables

我正在使用Laravel Datatables插件,我想将ROLE变量传递给函数,以便我可以访问它。

$ roles = \ Spatie \ Permission \ Models \ Role :: all();

    if (!empty($roles)) :

        foreach ($roles as $role) :

            $dt->addColumn($role->name, function ($user) {
                return $this->generate_user_role_button($user, $role->name);
            });

            $rawColumns[] = $role->name;

        endforeach;

    endif;

上面的代码不起作用,但我想知道解决方案是什么。

1 个答案:

答案 0 :(得分:5)

要将变量传递到闭包中,您需要use

有关此内容的更多信息,请参阅anonymous functions的PHP文档。

if (!empty($roles)) :

    foreach ($roles as $role) :

        $dt->addColumn($role->name, function () use ($user, $role) {
            return $this->generate_user_role_button($user, $role->name);
        });

        $rawColumns[] = $role->name;

    endforeach;

endif;