我正在尝试检索模型实例及其相关实例,以便只从两者中检索某些字段。 This和this问题回答了如何为相关的模型做到这一点,这对我很有用:
GOOGLE_PRIVATE_KEY
但是,如果我尝试限制$hash = \Post::whereId(1075)
->with(['thread' => function($query) {
$query->select('id', 'title');
}])
->first()
->toArray();
print_r($hash);
Array
(
[id] => 1075
[title] => Blablablablam,
[text] => Blablablablablablabl,
[created_at] => 2015-10-17 13:00:00
[updated_at] => 2015-10-17 13:00:00
[thread] => Array
(
[id] => 180
[title] => Blablablablam
)
)
模型的字段,则根本不会检索Post
数据:
Thread
那么,如何从主模型和相关模型中仅检索某些字段?
更新
在看到cresjie的答案之后,这对我有用:
$hash = \Post::whereId(1075)
->with(['thread' => function($query) {
$query->select('id', 'title');
}])
->addSelect('title')
->first()
->toArray();
print_r($hash);
Array
(
[title] => Blablablablam,
[thread] =>
)
唯一令我困惑的是外键($hash = \Post::whereId(1075)
->with(['thread' => function($query) {
$query->select('id', 'title');
}])
->addSelect('title', 'thread_id')
->first()
->toArray();
print_r($hash);
Array
(
[title] => Blablablablam,
[thread_id] => 180,
[thread] => Array
(
[id] => 180
[title] => Blablablablam
)
)
)需要明确指定,即使它已在thread_id
类中指定:
Post
答案 0 :(得分:1)
未检索Thread
数据,因为您还需要在Post