我如何急于使用自己的键将关系直接加载到父级而不循环?

时间:2018-11-03 11:52:24

标签: laravel laravel-5 eloquent

是否有一种直接的方法可以将关系键值直接加载到父级中。我的意思是不将其存储在子元素下?

例如:

$user = User::with('contact');

但返回以下内容:

[
    'name'=>'john',
    'surname'=>'doe'
    'contact' => [
        'phone' => '...',
        'email' => '...@...'
    ]
]

我直接想要这个:

[
    'name'=>'george',
    'surname'=>'doe',
    'phone' => '...',
    'email' => '...@...'
]

我可以循环所有用户并手动放置该值,但是我想知道是否存在一种直接从数据库调用这些用户的方法。如果有直接的方法,它将为我节省很多资源。

1 个答案:

答案 0 :(得分:3)

如果UserContact的关系为One-To-One,则可以运行这样的查询:

User::join('contacts', 'users.id', '=', 'contacts.user_id')
    ->select(['name', 'username', 'phone', 'email'])
    ->get();