在Laravel(PHP)中访问匿名函数中的超出范围的变量

时间:2017-08-08 17:08:25

标签: php mysql laravel anonymous-function laravel-eloquent

我想在Laravel中播种相关表格。我在访问匿名函数中的范围外变量时遇到了问题,我已经为whereHas方法定义了放置"其中"我的条件有疑问。

$id = $user->id; // out-of-scope variable
$posts = Post::whereHas('comments', function ($query) {
    $query->where('user_id', $id);
})->get();

从技术上讲,我无法访问匿名函数中的$id

1 个答案:

答案 0 :(得分:9)

这不是一个Laravel问题,而是PHP问题。只需在参数列表后添加use ($variable)

$posts = Post::whereHas('comments', function ($query) use ($id) {
    $query->where('user_id', $id);
})->get();