Как выполнить TRIM () и CONCAT () в Laravel Query Builder? - PullRequest
1 голос
/ 24 марта 2019

Я пытался взять 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();

Ответы [ 4 ]

2 голосов
/ 24 марта 2019

Почему бы не использовать модель Laravel для достижения этой цели?

class Student extends Model {

     protected $appends = 'full_name';

     public function getFullNameAttribute() {
         return $this->FirstName . ' ' . $this->MiddleName . ' ' . $this->LastName; 
     }
}

Тогда Student::get() будет иметь атрибут full_name для каждого студента.

0 голосов
/ 24 марта 2019
$student = DB::table('student')
    ->select(
        DB::raw("TRIM(CONCAT(FirstName,' ',MiddleName,' ',LastName)) AS Name")
    )->get();

TRIM Функция - удаление начальных и конечных пробелов из строки См. Примеры и способы ее использования

CONCAT Функция- Добавьте несколько строк вместе, используя запятую : См. Примеры и способы их использования

Надежда поможет вам:)

0 голосов
/ 24 марта 2019

Попробуйте это:

$student = \DB::table('student')
               ->select(\DB::raw('CONCAT_WS(" ", `FirstName`, `MiddleName`, `Lastname`) as Name'))
               ->get();
0 голосов
/ 24 марта 2019

Символы + должны быть запятыми:

$student = \DB::table('student')
    ->selectRaw("TRIM(CONCAT(COALESCE(FirstName,  ''), COALESCE(MiddleName,  ''), COALESCE(Lastname, ''))) AS Name")
    ->get();
...