合并 DataTable 中的两列

Combine Two Columns From DataTable

我想合并 DataTable 中的两列。我有 namesurname,但我想将它们组合起来,只显示一列全名。

Blade

<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

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'},

在你的情况下,我会在你的模型中创建一个访问器:

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

我相信您现在可以调用 nom_complet 就像它是数据表中的常规字段一样。

文档:https://laravel.com/docs/5.7/eloquent-mutators#defining-an-accessor

我听从你的帮助,我尝试将主题与那个结合起来

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;
            }