从父模型和子模型中获取特定字段

时间:2016-03-10 23:51:57

标签: php laravel eloquent laravel-5.1 eager-loading

我正在尝试检索模型实例及其相关实例,以便只从两者中检索某些字段。 Thisthis问题回答了如何为相关的模型做到这一点,这对我很有用:

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

1 个答案:

答案 0 :(得分:1)

未检索Thread数据,因为您还需要在Post

中选择外键