我有以下代码,
\Cache::rememberForever('Roles', function() {
return RoleModel
::where('ParentRoleID' >= $CurrenctUserRoleID)
->get();
});
问题是:我收到错误
未定义的变量:CurrenctUserRoleID
问题:有没有办法在回调中传递变量?
答案 0 :(得分:3)
您可以尝试此操作(请注意使用use
关键字):
$CurrenctUserRoleID = 1; // Some id
\Cache::rememberForever('Roles', function() use($CurrenctUserRoleID) {
return RoleModel
::where('ParentRoleID' >= $CurrenctUserRoleID)
->get();
});
答案 1 :(得分:1)
PHP.net - anonymous functions - 示例#3
您没有通过回调传递任何内容,因为您不是该回调的调用方。您告诉PHP使用父作用域中的变量。
function (...) use (...) { ... }