簡體   English   中英

Laravel Pluck 並結合兩個字段來生成一個選擇菜單

[英]Laravel Pluck and combine two fields to generate a select menu

假設我的數據庫中有以下字段用於用戶idfirst_namelast_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_namelast_name所以我可以獲得以下信息:

array:4 [▼
  1 => "John Doe"
  2 => "Linda Smith"
  3 => "Jane Doe"
  4 => "Carl Johnson"
]

first_namelast_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.

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