PHP foreach - undefined variable ?

标签 php laravel-5

我正在使用 Laravel 5.3 的查询构建器,试图添加一个 where 子句来查找带有特定标签的文章:

$tag_list = $request->tag_list; // tag_list is an array
if (isset($tag_list)) {
    foreach ($tag_list as $tag_id) {
        $query = $query->whereHas('tags', function ($query) {
            $query->where('id', $tag_id);
        });
    }
}

当我转储 $tag_list 时,我得到...

24

但是在循环中,我得到一个错误:

Undefined variable: tag_id

我做错了什么?感谢您的帮助!

最佳答案

因为你在函数上下文中。通过 使用 关键字

传递 tag_id 变量
$tag_list = $request->tag_list; // tag_list is an array
if (isset($tag_list)) {
    foreach ($tag_list as $tag_id) {
        $query = $query->whereHas('tags', function ($query) use ($tag_id) {
            $query->where('id', $tag_id);
        });
    }
}

关于PHP foreach - undefined variable ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41793283/

相关文章:

php - Zend_Mail 发送的电子邮件被视为垃圾邮件

php - Laravel 数据库 :table for multi where AND Or condition for multiple slected field

Laravel 和 PHPUnit : Getting 500 when unit testing "Passport" restricted route

php - Laravel 5.0 存在 Predis 依赖问题

php - 客房和可用日期 PHP/MySQL

php - 重写 URL :s with . htaccess

php - 从 PHP 文件中删除结束标记的理由

php - Laravel Blade 模板 : combine string with variable from controller for @yield parameter

php - 在 Laravel 中查询集合

php - 使用 Mysql Query Profiler 了解查询的执行时间和 php 脚本中的性能