With()laravel中的Where子句不起作用

时间:2017-08-03 08:00:11

标签: laravel-5 laravel-eloquent

你好,我在Laravel 5中有一点滔滔不绝的问题。

我有这个功能:

$lists = Model::with(array('relation_with_registered_in_model'=>function($query){
                $query->where("name","cccc");
          }))->get();

我的问题是,总是返回所有结果,忽略where子句。

我尝试打印我的查询(使用函数生成),如果我在phpmyadmin中执行查询,则返回正确的过滤结果。

我错了什么?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用单个qoute

$lists = Model::with(array('relation_with_registered_in_model'=>function($query){
                $query->where('name','cccc');
          }))->get();

答案 1 :(得分:0)

我已经解决并理解了我的错误:

在这篇文章中,我们解释了https://laracasts.com/discuss/channels/general-discussion/problem-with-the-eager-loading-of-laravel-eloquent-orm?page=1

// gets only models that have relation matching the closure constraint
// no eager loading of the relation!
Model::whereHas('relation', function ($q) { ...} ); 

// gets ALL models
// and eager loads the relation, but only rows matching the constraint
Model::with(['relation' => function ($q) { ...} ]);