[英]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.