查询构建器:将参数传递给匿名函数

时间:2013-02-21 16:18:45

标签: php laravel

我在将变量传递给查询构建器闭包时遇到了问题,这是我的代码:

function get_usersbyname($name){
    dd($name);
    $resultset = DB::table('users')->where(function($query){
        $query->where('username', 'LIKE', $name);
    });
....
}

如果我运行它,它会返回错误“undefined name variable”,但我已经通过了$name变量并检查了它的存在。 此外,我找不到任何资源解释如何将变量传递给查询构建器匿名函数。 你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:32)

您需要告诉匿名函数使用该变量,如...

因为该变量超出了匿名函数的范围,所以需要使用 use 关键字传递,如下例所示。

function get_usersbyname($name){
    dd($name);
    $resultset = DB::table('users')->where(function($query) use ($name) {
        $query->where('username', 'LIKE', $name);
    });
....
}