Laravel Einsatz von concat mit zupfen Methode
Bin ich mit Laravel.5.3 und unten ist meine Abfrage
$ProjectManagers = Employees::where("designation" , 1)
->pluck(DB::raw('CONCAT(first_name," ",last_name) AS name'),'id');
die wirft eine Fehlermeldung, dass
Illegal offset type in isset oder empty
Kann ich wissen, ob dies die richtige Methode ?
wenn ich nicht Kontakt und nutzen wie
$ProjectManagers = Employees::where("designation" , 1)->pluck('first_name','id');
die arbeiten korrekt und geben mir das Ergebnis
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[8] => Punit
)
)
Erwartete Ergebnis :
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[8] => Punit Gajjar
)
)
wo first name und last name sind verkettet.
- ändern
->pluck('first_name','id');
zu " - >pflücken('name','id');? - SQLSTATE[42S22]: Column nicht found: 1054 Unknown column 'name' in 'field list'
- hmm, war nur eine Vermutung aus der Spitze von meinem Kopf, ich kann mir vorstellen
name
müsste da irgendwo, dass da ist der alias in der Abfrage verwendet wird. Die einzige andere Sache, die ich denken kann, ist$ProjectManagers = Employees::select([DB::raw("CONCAT(first_name," ",last_name) AS name")])->where('designation', 1)->pluck('name', 'id');
. Ich habe nicht verwendet zupfen also nicht sicher, wenn Sie bitten können, für mehr als eine Spalte, eine alternative scheint es zu sein, verwenden Sie->only("id", "name")->toArray()
- ja es funktioniert vielen Dank , , richtige ist
$ProjectManagers = Employees::select(DB::raw("CONCAT(first_name,' ',last_name) AS name"),'id')->where('designation', 1)->pluck('name', 'id');
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, die eloquent-Abfrage:
Die eleganteste Lösung ist die Erstellung einer accessor.
Öffnen Sie Ihre Mitarbeiter Klasse (Modell) und fügen Sie eine accessor-Funktion:
Nach, dass, nur verwenden Sie einfach:
Employees::all()->pluck('full_name', 'id')
. Beachten Sie dieall()
. Ich verneint, weil ich nicht ein gut-Klausel, aber Laravel Abfragen der Datenbank auf den ersten Anruf, so dass es an die Suche in der Datenbank fürfull_name
.Ich auch vor ein problem wie das mit join-Abfrage ist hier die Lösung meines Problems