[英]Laravel Pluck and combine two fields to generate a select menu
假設我的數據庫中有以下字段用於用戶id
、 first_name
和last_name
。 我想生成一個選擇菜單,如下所示:
<select>
<option value="id">first_name + last_name</option>
</select>
我知道我可以使用pluck
來獲取一個數組,其中id
作為鍵,另外一個字段作為值:
User::pluck('first_name', 'id')->all();
這將產生:
array:4 [▼
1 => "John"
2 => "Linda"
3 => "Jane"
4 => "Carl"
]
有沒有一種簡單的方法使用 eloquent 來獲取first_name
和last_name
所以我可以獲得以下信息:
array:4 [▼
1 => "John Doe"
2 => "Linda Smith"
3 => "Jane Doe"
4 => "Carl Johnson"
]
first_name
和last_name
是解釋我的問題的示例,我需要將其他兩個字段組合在一起,而不是不能“合並”到一個字段中。
最好的方法是動態附加模型屬性獲取全名。
在模型中
class User extends Model
{
public $appends = [ 'full_name' ];
public function getFullNameAttribute()
{
return $this->first_name .' '. $this->last_name;
}
}
在控制器中
User::pluck('full_name', 'id')->all();
如果您使用的是 Laravel 最新版本,請同時遵循https://laravel.com/docs/9.x/eloquent-serialization#appending-values-to-json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.