我在将变量传递给查询构建器闭包时遇到了问题,这是我的代码:
function get_usersbyname($name){
dd($name);
$resultset = DB::table('users')->where(function($query){
$query->where('username', 'LIKE', $name);
});
....
}
如果我运行它,它会返回错误“undefined name variable
”,但我已经通过了$name
变量并检查了它的存在。
此外,我找不到任何资源解释如何将变量传递给查询构建器匿名函数。
你能帮我解决这个问题吗?
答案 0 :(得分:32)
您需要告诉匿名函数使用该变量,如...
因为该变量超出了匿名函数的范围,所以需要使用 use 关键字传递,如下例所示。
function get_usersbyname($name){
dd($name);
$resultset = DB::table('users')->where(function($query) use ($name) {
$query->where('username', 'LIKE', $name);
});
....
}