8

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

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

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

4

1 回答 1

33

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

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

function get_usersbyname($name){
    dd($name);
    $resultset = DB::table('users')->where(function($query) use ($name) {
        $query->where('username', 'LIKE', $name);
    });
....
}
于 2013-02-21T16:26:01.153 回答