Объединить два столбца из DataTable

введите здесь описание изображения

Я хочу объединить два столбца в моей таблице данных. У меня есть name и surname, но я хочу их объединить и показать только один столбец с полным именем.

Блейд

<th>{{ trans('labels.backend.patients.table.id') }}</th>
<th>{{ trans('labels.backend.patients.table.nom_patient') }}</th>
<th>{{ trans('labels.backend.patients.table.prenom_patient') }}</th>
<th>{{ trans('labels.backend.patients.table.date_naissance') }}</th>

Ajax DataTable

columns: [ {data: 'id', name: '{{config('module.patients.table')}}.id'},
    {data: 'nom_patient', name: '{{config('module.patients.table')}}.nom_patient'},
    {data: 'prenom_patient', name: '{{config('module.patients.table')}}.prenom_patient'},

person haffis asma    schedule 07.01.2019    source источник
comment
Как называются столбцы базы данных имени и фамилии?   -  person Stormhammer    schedule 07.01.2019
comment
это по-французски (prenom , nom)=›(фамилия и имя) я хочу объединить их в один столбец@Stormhammer   -  person haffis asma    schedule 07.01.2019
comment
@haffis, вы можете предварительно обработать объект JSON и внести необходимые изменения перед инициализацией таблицы данных. Если объект JSON доступен только как ответ AJAX, вы можете сделать это в Javascript. И если у вас есть полный контроль над внутренним кодом, который генерирует JSON (в PHP), вы можете сделать это там, чтобы... например, запрос БД можно настроить так, чтобы он возвращал запрос, чтобы он имел комбинированное поле.   -  person asiby    schedule 07.01.2019
comment
я пытаюсь это сделать, но у меня не работает, не могли бы вы мне помочь? @asiby   -  person haffis asma    schedule 07.01.2019
comment
Конечно. Но мне нужна дополнительная информация. У вас есть доступ к запросу БД?   -  person asiby    schedule 07.01.2019
comment
Кроме того, с какими данными вы работаете? Вы манипулируете кодом JavaScript и используете jQuery или делаете это на PHP?   -  person asiby    schedule 07.01.2019
comment
@asiby я использую с PHP с функцией __invoke public function __invoke(ManagePatientRequest $request) { return Datatables::of($this-›patient-›getForDataTable()) ->escapeColumns(['id']) ->addColumn( 'ном_пациент', функция ($пациент) {возврат $пациент-›ном_пациент; }) ->addColumn('преном_пациент', функция ($пациент) { возврат $пациент-›преном_пациент; })   -  person haffis asma    schedule 08.01.2019
comment
Я понимаю. Но с теми мелочами, которые вы предоставили до сих пор, я не могу оказать какую-либо полезную помощь. Я сдаюсь.   -  person asiby    schedule 09.01.2019


Ответы (2)


В вашем случае я бы создал аксессуар в вашей модели:

getNomCompletAttribute() {
    return $this->prenom . ' ' . $this->nom;
}

Я считаю, что теперь вы можете просто вызвать nom_complet, как если бы это было обычное поле в таблицах данных.

Документы: https://laravel.com/docs/5.7/eloquent-mutators#defining-an-accessor

person Stormhammer    schedule 07.01.2019

я следую вашей помощи, и я пытаюсь объединить тему с этим

public function __invoke(ManagePatientRequest $request)
    {
        return Datatables::of($this->patient->getForDataTable())
            ->escapeColumns(['id'])
            ->addColumn('nom_patient', function ($patient) {
                return $patient->nom_patient.''.$patient->prenom_patient;
            }
person haffis asma    schedule 10.01.2019