Utilisation Laravel de la méthode concat avec pluck
J'utilise 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
Illégal type de décalage dans isset ou empty
je peux savoir si c'est la bonne méthode ?
si je n'utilise pas de contact et l'utilisation de la forme
$ProjectManagers = Employees::where("designation" , 1)->pluck('first_name','id');
qui fonctionne correctement et me donne le résultat
IlluminateSupportCollection Object
(
[items:protected] => Array
(
[8] => Punit
)
)
Résultat Escompté:
IlluminateSupportCollection Object
(
[items:protected] => Array
(
[8] => Punit Gajjar
)
)
où prénom et nom sont concaténées.
13
demandé sur
Ramkrishna Sharma
2016-10-19 15:56:42
3 réponses
Essayez de changer le signe de la requête:
$ProjectManagers = Employees::select(
DB::raw("CONCAT(first_name,' ',last_name) AS name"),'id')
->where('designation', 1)
->pluck('name', 'id');
26
répondu
martincarlin87
2017-03-30 06:53:26
la solution La plus élégante est de créer un accesseur.
ouvrez votre Employés classe (modèle) et ajouter un accesseur de la fonction:
public function getFullNameAttribute()
{
return $this->first_name . ' ' . $this->last_name;
}
après cela, utilisez simplement:
$ProjectManagers = Employees::where('designation', 1)->get()->pluck('full_name', 'id');
17
répondu
Blaž Oražem
2017-11-15 14:47:50
j'ai également fait face à un problème comme celui-ci avec join query voici la solution de mon problème
$studentDegree = Student::leftJoin('degree','degree.student_id','=','student.id')
->select(
DB::raw("CONCAT(student.name,'-',degree.name) AS name_degree"),
'student.id'
)->lists('name_degree','id');
1
répondu
Hasib Kamal
2018-09-12 04:14:35