Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 为什么查询返回空集合?_Laravel_Laravel 5_Laravel 5.2_Laravel 5.3 - Fatal编程技术网

Laravel 为什么查询返回空集合?

Laravel 为什么查询返回空集合?,laravel,laravel-5,laravel-5.2,laravel-5.3,Laravel,Laravel 5,Laravel 5.2,Laravel 5.3,我知道以下查询是由Laravel创建的: $res = Announcement::whereExists(function ($query) { $query->select(DB::raw(1)) ->from('announcement_category')->join('user_category', 'user_category.category_id', '=', 'announcement_c

我知道以下查询是由Laravel创建的:

$res = Announcement::whereExists(function ($query) {
                $query->select(DB::raw(1))
                    ->from('announcement_category')->join('user_category', 'user_category.category_id', '=', 'announcement_category.category_id')
                    ->where('user_category.user_id', '=', 1)
                    ->where('announcement_category.announcement_id', '=', 'announcements.id');
            });

dd($res->get());
上面的代码给了我一个空集合:
dd($res->get())

此查询的纯SQL代码为:

    select * from `announcements` where exists (select 1 from
 `announcement_category` inner join `user_category` on 

`user_category`.`category_id` = `announcement_category`.`category_id` where `user_category`.`user_id` = 1 

and `announcement_category`.`announcement_id` = announcements.id) 

and `announcements`.`deleted_at` is null
如果直接在MySQL中执行,我将得到两个结果行


但是为什么
dd($res->get())将我重新整理为空?

我认为雄辩的模型中不存在一个存在的地方。。。试试这个:

$res = DB::table('announcement')->whereExists(function ($query) {
                $query->select(DB::raw(1))
                    ->from('announcement_category')->join('user_category', 'user_category.category_id', '=', 'announcement_category.category_id')
                    ->where('user_category.user_id', '=', 1)
                    ->where('announcement_category.announcement_id', '=', 'announcements.id');
            })->get();

为什么在SELECT子句中使用
DB::raw(1)
?如果使用
*
结果相同,则为: