2017-06-10 4 views
1

Mit select2 mit einem Laravel/Vue Projekt und müssen JSON in folgendem Format zurück:Laravel zupfen, aber die Kombination von Vorname + Nachname für ausgewählte

[ 
    { id: 0, text: 'enhancement' }, 
    { id: 1, text: 'bug' } 
] 

In Laravel Ich weiß, ich zupfen verwenden können, um meine zu erstellen Daten auflisten z für Kunden:

$customers = Customer::pluck('id', 'first_name'); 

Aber möchten die ID und Vorname + Nachname als einen einzelnen Namen zurückgeben.

Wie kann ich das tun?

Antwort

3

Haben Sie versucht, Accessors zu verwenden?

https://laravel.com/docs/5.4/eloquent-mutators#defining-an-accessor

Ich habe es nicht getestet, aber diese funktionieren könnte:

dieses Eloquent Modell zu Ihrem Kunden hinzufügen:

public function getFullNameAttribute($value) 
    { 
     return ucfirst($this->first_name) . ' ' . ucfirst($this->last_name); 
    } 

und dann versuchen:

AKTUALISIERT zupfen auf Accessor funktioniert nur auf einer Sammlung. Wenn Sie Customer::pluck('id', 'full_name') versuchen wird es nicht funktionieren, da es keine db Spalte namens full_name ist daher müssen Sie Customer::all()->pluck('id', 'full_name')

$customers = Customer::all()->pluck('id', 'full_name'); 
  • als Randnotiz verwenden, für die Leistung ist es wahrscheinlich besser ist Customer::all(['id', 'first_name', 'last_name'])->pluck(...) so zu tun, dass wir don‘ t ziehen Sie unnötige Spalten aus der Datenbank.

Hoffnung, das hilft.

0

Sie tun können, es so,

$customers = DB::table('customers')->select("id", "CONCAT(firstname,' ',lastname) as fullname")->get(); 

oder Sie tun auch so,

$customers = DB::table('customers')->select(DB::raw('CONCAT(firstname,' ',lastname) as fullname, id'))->get(); 

oder mit PHP Art und Weise,

$fullname = $customers->firstname. " " .$customers->lastname; 
Verwandte Themen