即使使用where语句,Eloquent查询也会返回所有内容

时间:2015-11-10 01:30:10

标签: laravel laravel-5 eloquent

我试图从2个表中获得一些信息,以及它与Laravel 5.1中的Constraining Eager Loads的关系,但它总是会返回所有内容,即使在' where'正在搜索不存在的值

这是代码:

$selectedImages = ImageSession::with(['folder' => function($query){
    $query->where('session', Session::getId());
}])->get();

我还想学习如何为此语句指定选择列。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您的查询仅限制文件夹,但不限制图像会话。

使用whereHas方法限制主模型:

$constraint = function ($query) {
    $query->where('session', Session::getId());
};

$selected = ImageSession::with(['folder' => $constraint])
                        ->whereHas('folder', $constraint)
                        ->get();