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

Access to out-of-scope variable within anonymous functions in Laravel (PHP)

我想在 Laravel 中为相关表格播种。我在访问匿名函数内的范围外变量时遇到问题,我为 whereHas 方法定义了 "where" 条件来对我的 has 查询进行设置。

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

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

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

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