Я пытался взять FirstName, middlename, Lastname, использовал Query Builder в сочетании с RAW, но потерпел неудачу. мой путь не так? Спасибо
$student = \DB::table('student') ->select(DB::raw('RTRIM(LTRIM(CONCAT( COALESCE(FirstName + ''), COALESCE(MiddleName + ''), COALESCE(Lastname, '')))) AS Name')) ->get();
Почему бы не использовать модель Laravel для достижения этой цели?
class Student extends Model { protected $appends = 'full_name'; public function getFullNameAttribute() { return $this->FirstName . ' ' . $this->MiddleName . ' ' . $this->LastName; } }
Тогда Student::get() будет иметь атрибут full_name для каждого студента.
Student::get()
full_name
$student = DB::table('student') ->select( DB::raw("TRIM(CONCAT(FirstName,' ',MiddleName,' ',LastName)) AS Name") )->get();
TRIM Функция - удаление начальных и конечных пробелов из строки См. Примеры и способы ее использования
CONCAT Функция- Добавьте несколько строк вместе, используя запятую : См. Примеры и способы их использования
Надежда поможет вам:)
Попробуйте это:
$student = \DB::table('student') ->select(\DB::raw('CONCAT_WS(" ", `FirstName`, `MiddleName`, `Lastname`) as Name')) ->get();
Символы + должны быть запятыми:
+
$student = \DB::table('student') ->selectRaw("TRIM(CONCAT(COALESCE(FirstName, ''), COALESCE(MiddleName, ''), COALESCE(Lastname, ''))) AS Name") ->get();