拉拉维尔从关系中拔出田野

我有一个卖家对象,其中包含相关用户。我需要填写LaravelCollective的选择,所以我需要做这样的东西:

{!! Form::selectGroup('seller_id', 'Seller', Seller::with('user')->pluck('user.first_name', 'id')->toArray(), null) !!}

问题是我无法从关系中获取字段(user.first_name)。

我该怎么做?

更新

我想避免这样做...

<?php 
    $sellers = [];

    Seller::with('user')->get()->each(function ($seller) use (&$sellers) {
        $sellers[$seller->id] = $seller->user->first_name;
    });
?>

答案 1

您可以使用Laravel的拔毛方法:

$sellers = Seller::with('user')->get()->pluck('user.first_name', 'id')

答案 2

你可以通过使用 join() & pluck() 来实现它,如下所示:

$s = Seller::join('users', 'sellers.user_id', '=', 'users.id')
          ->pluck('sellers.id', 'users.id')
          ->all();

这将给出一个如下数组:

[
    'seller_id_1' => 'user_id_1',
    'seller_id_2' => 'user_id_2',
    'seller_id_3' => 'user_id_3',
    'seller_id_4' => 'user_id_4',
    'seller_id_n' => 'user_id_n',
];

希望这有帮助!


推荐