【发布时间】:2019-08-14 14:49:50
【问题描述】:
我有一个应用程序,其中
一个EventDateItem属于一个Event,一个Event有Categories,一个Event有CollectionItems
我有以下问题
$eventsQuery = EventDateItem::with([
'event.categories',
'event.collectionItems' => function ($q) use ($collectionItem) {
$q->select('thisdoesntexist');
}
])->whereDate('date', '>', Carbon::now());
当我使用toSql() 返回 sql 时会发生什么,如下
select * from `event_date_items` where date(`date`) > ?
所以它忽略了我的 with() 子句和其中的 where 子句。 我错过了什么吗?
【问题讨论】:
-
Laravel 执行一个额外的查询来加载关系,因此它们不会显示为
toSql,您必须使用DB::getQueryLog()来获取所有执行的查询。检查this。 -
您得到想要的答案了吗?或者您需要更多信息?
-
嗯,我明白他们在说什么,但这并不能真正解决这里的问题。一定有办法从您包含的关系中选择列?
标签: laravel eloquent query-builder