Я использую Laravel.5.3 и ниже мой запросLaravel использование CONCAT методом срывать
$ProjectManagers = Employees::where("designation" , 1)
->pluck(DB::raw('CONCAT(first_name," ",last_name) AS name'),'id');
, который выдает ошибку, что
Illegal тип смещения в Исеть или пустой
Могу ли я узнать, правильный ли это метод?
, если я не использую контакт и использовать как
$ProjectManagers = Employees::where("designation" , 1)->pluck('first_name','id');
который работает правильно и дает мне результат
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[8] => Punit
)
)
Ожидаемый результат:
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[8] => Punit Gajjar
)
)
где первое имя и фамилия объединяется.
change '-> pluck ('first_name', 'id');' to '-> pluck ('name', 'id') ;? – martincarlin87
@ martincarlin87: SQLSTATE [42S22]: Колонка не найдена: 1054 Неизвестная колонка 'name' в 'списке полей' –
hmm, была просто угадана с моей головы, я думаю, что «имя» должно было быть где-то там поскольку это псевдоним, который используется в запросе. Единственное, что я могу придумать, это '$ ProjectManagers = Employees :: select ([DB :: raw (" CONCAT (first_name, "", last_name) AS name ")])>> где ('обозначение', 1) -> pluck ('name', 'id'); '. Я не использовал pluck, поэтому не уверен, что вы можете запросить более одного столбца, альтернативой, по-видимому, является использование только '-> (« id »,« name ») -> toArray()' – martincarlin87