簡體   English   中英

Laravel Pluck Concat 關系

[英]Laravel Pluck Concat Relations

我在我的項目中使用 laravel 8,試圖從模型中提取數據

    $user = Users::with('media')->get()->pluck('media.title', 'id')->all();

我得到了輸出

    {
     "sample": 1,
    }

我的預期輸出,尋找組合媒體表中的列和用戶表中的列的值

   {
     "media.title + user.name": id,
   }

據我所知,直接使用 pluck 是不可能的。 按照我的看法,您有 2-3 個選項:

在您的User模型中創建一個連接用戶名和媒體標題的訪問器,例如:

public function getNameWithMediaAttribute()
{
    return $this->name . ' + ' . $this->media->title
}

然后在查詢后使用->pluck('nameWithMedia')進行選擇。


或者你可以像$user = Users::with('media')->get();那樣拉它們$user = Users::with('media')->get(); 並映射結果以返回您想要的格式。 就像是:

$users = User::with('media')->get()->map(function($user) 
{
    return [$user->media->title . ' + ' . $user->name => $user->id];
})->collapse();

不要忘記->collapse()部分。


您還可以進行一個查詢,在一個字段下收集該數據,然后在從數據庫中提取它后提取它。 但是我的 SQL-fu 不夠好,無法輕松做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM