有没有办法在 rememberForever 回调中传递变量?
Is there any way to pass variable in rememberForever callback?
我有以下代码,
\Cache::rememberForever('Roles', function() {
return RoleModel
::where('ParentRoleID' >= $CurrenctUserRoleID)
->get();
});
问题是:我遇到错误
Undefined variable: CurrenctUserRoleID
问题: 有什么方法可以在回调中传递变量吗?
你可以试试这个(注意使用 use
关键字):
$CurrenctUserRoleID = 1; // Some id
\Cache::rememberForever('Roles', function() use($CurrenctUserRoleID) {
return RoleModel
::where('ParentRoleID' >= $CurrenctUserRoleID)
->get();
});
查看 PHP
手册:Inheriting variables from the parent scope。
PHP.net - anonymous functions - 示例 #3
您没有通过回调传递任何内容,因为您不是该回调的调用者。您告诉 PHP 使用父作用域中的变量。
function (...) use (...) { ... }
我有以下代码,
\Cache::rememberForever('Roles', function() {
return RoleModel
::where('ParentRoleID' >= $CurrenctUserRoleID)
->get();
});
问题是:我遇到错误
Undefined variable: CurrenctUserRoleID
问题: 有什么方法可以在回调中传递变量吗?
你可以试试这个(注意使用 use
关键字):
$CurrenctUserRoleID = 1; // Some id
\Cache::rememberForever('Roles', function() use($CurrenctUserRoleID) {
return RoleModel
::where('ParentRoleID' >= $CurrenctUserRoleID)
->get();
});
查看 PHP
手册:Inheriting variables from the parent scope。
PHP.net - anonymous functions - 示例 #3
您没有通过回调传递任何内容,因为您不是该回调的调用者。您告诉 PHP 使用父作用域中的变量。
function (...) use (...) { ... }