【发布时间】:2014-12-24 03:06:37
【问题描述】:
我想用Eloquent 执行以下查询。
$restaurant = Restaurant::with([
'user' => function($query)
{
$query->select(['username']); // This doesn't work
$query->whereStatus('confirmed');
}
])->find($id);
我想获取Restaurant 和它对应的User(它们是相关的),但从User 我不想要所有信息。在这种情况下只有username。
我可以将属性$hidden 添加到User 模型中,但是对于每个查询(以数组/ json 形式),它们将被隐藏。但我只想对这个查询进行更多限制。
如果我添加选择(无论是否将其包装在数组中),我都会得到以下结果:
{
'id': 1,
'user': null
}
但是,如果我删除该选择,我会得到完整的 User:
{
'id': 1,
'user': { .. json user data }
}
User 确实存在,username 不为空。我该怎么办?
在这里可以找到actual 输出。
编辑:当我将选择中的值更改为数据库中不存在的值时,我看到一个错误,并从中推断出查询是正确的,但我只是没有得到任何输出。 (使用无效列“test”时我得到的查询)。
select `test` from `users` where `users`.`deleted_at` is null and `users`.`userable_id` in (1) and `users`.`userable_type` = Restaurant and `status` = confirmed)
【问题讨论】:
-
关系的主键和外键:再次:stackoverflow.com/questions/25906790/… - 点赞,玩得开心。