【问题标题】:Is there any way to pass variable in rememberForever callback?有没有办法在 rememberForever 回调中传递变量?
【发布时间】:2017-02-13 04:57:07
【问题描述】:

我有以下代码,

\Cache::rememberForever('Roles', function() {
    return RoleModel
        ::where('ParentRoleID' >= $CurrenctUserRoleID)
        ->get();
});

问题是:我收到错误

未定义变量:CurrenctUserRoleID

问题:有没有办法在回调中传递变量?

【问题讨论】:

标签: laravel laravel-5 laravel-5.2 laravel-5.1 laravel-5.3


【解决方案1】:

你可以试试这个(注意use关键字的使用):

$CurrenctUserRoleID = 1; // Some id

\Cache::rememberForever('Roles', function() use($CurrenctUserRoleID) {
    return RoleModel
    ::where('ParentRoleID' >= $CurrenctUserRoleID)
    ->get();
});

查看PHP 手册:Inheriting variables from the parent scope

【讨论】:

    【解决方案2】:

    PHP.net - anonymous functions - 示例 #3

    您没有通过回调传递任何内容,因为您不是该回调的调用者。您是在告诉 PHP 使用父作用域中的变量。

    function (...) use (...) { ... }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 2012-05-12
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      相关资源
      最近更新 更多