laravel如何将参数传递给查询范围?

时间:2014-03-09 12:47:34

标签: php laravel laravel-4

首先看代码:

$bookname = 'www';
User::with(array('roles' => function($query) {
    $query->where('bookname' => $bookname);
}))->find(1);

但它导致错误“未定义变量$ bookname”..如何解决这个问题?谢谢

1 个答案:

答案 0 :(得分:1)

语法错误。

$bookname = 'www';
User::with(array('roles' => function($query) use ($bookname) {
    $query->where('bookname', '=', $bookname);
}))->find(1);

要使用匿名函数内的$bookname,您需要使用use语句传递它。此外,匿名函数中的where()函数需要3个参数:
列名称,比较运算符,搜索值。