Laravel utilisation de concat avec plumer méthode
Je suis à l'aide de Laravel.5.3 et voici ma requête
$ProjectManagers = Employees::where("designation" , 1)
->pluck(DB::raw('CONCAT(first_name," ",last_name) AS name'),'id');
qui déclenche une erreur que
Illégale type de décalage dans isset ou empty
Pourrais-je savoir si c'est la bonne méthode ?
si je n'utilise pas de contact et de les utiliser comme
$ProjectManagers = Employees::where("designation" , 1)->pluck('first_name','id');
qui travaille corriger et me donner le résultat
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[8] => Punit
)
)
Résultat Attendu :
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[8] => Punit Gajjar
)
)
où le prénom et le nom sont concaténées.
- changement
->pluck('first_name','id');
à `->arracher('nom','id');? - SQLSTATE[42S22]: Colonne qui n'a pas trouvé: 1054 Unknown column 'nom' in 'field list'
- hmm, c'était juste une supposition sur le dessus de ma tête, j'imagine
name
aurait à être là quelque part puisque c'est l'alias est utilisé dans la requête. La seule autre chose que je peux penser à est de$ProjectManagers = Employees::select([DB::raw("CONCAT(first_name," ",last_name) AS name")])->where('designation', 1)->pluck('name', 'id');
. Je n'ai pas utilisé plumer si vous ne savez pas si vous pouvez demander plus d'une colonne, une solution semble être d'utiliser->only("id", "name")->toArray()
- oui il fonctionne grâce , , bon est
$ProjectManagers = Employees::select(DB::raw("CONCAT(first_name,' ',last_name) AS name"),'id')->where('designation', 1)->pluck('name', 'id');
Vous devez vous connecter pour publier un commentaire.
Essayez de changer le signe de la requête pour:
La solution la plus élégante est de créer un accesseur.
Ouvrir votre Employés classe (modèle) et ajouter un accesseur de la fonction:
Après cela, il suffit simplement d'utiliser:
Employees::all()->pluck('full_name', 'id')
. Avis de laall()
. J'ai annulé parce que je n'avais pas un bien de la clause, mais Laravel les requêtes de la base de données sur le premier appel, l'amenant à rechercher la base de données pourfull_name
.J'ai aussi fait face à un problème comme ça avec la requête de jointure voici la solution de mon problème