php - 在 Laravel (PHP) 中访问匿名函数中的范围外变量

标签 php mysql laravel anonymous-function eloquent

我想在 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();

关于php - 在 Laravel (PHP) 中访问匿名函数中的范围外变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45574240/

相关文章:

php - 使用 MySQL 调试 PDO 准备的查询

php Laravel 只允许连续最多两个换行符

php - PHP/MySQL 中的最新条目按升序排列

mysql 替换表中的值

PHP - 从 blob 文件创建图像并与另一个文件组合,同时保持透明度

php - PDO MYSQL 更新不工作

php - 在 laravel 4.2 中获取大量数据

php - 基于lng和lat实现半正矢距离查询

php - Mysql查询查杀脚本

php - 不明确的查询 [codeigniter]