我正在使用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;
上面的代码不起作用,但我想知道解决方案是什么。
答案 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;