我想在Laravel中播种相关表格。我在访问匿名函数中的范围外变量时遇到了问题,我已经为whereHas
方法定义了放置"其中"我的条件有疑问。
$id = $user->id; // out-of-scope variable
$posts = Post::whereHas('comments', function ($query) {
$query->where('user_id', $id);
})->get();
从技术上讲,我无法访问匿名函数中的$id
。
答案 0 :(得分:9)
这不是一个Laravel问题,而是PHP问题。只需在参数列表后添加use ($variable)
:
$posts = Post::whereHas('comments', function ($query) use ($id) {
$query->where('user_id', $id);
})->get();