【问题标题】:Combine Two Columns From DataTable合并 DataTable 中的两列
【发布时间】:2019-06-02 05:54:44
【问题描述】:

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

刀片

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

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

【问题讨论】:

  • name 和 surname 数据库列叫什么?
  • 它是法语(prenom,nom)=>(姓和名)我想将它们组合在同一个coloumn@Stormhammer
  • @haffis,您可以在初始化数据表之前预处理 JSON 对象并进行必要的更改。如果 JSON 对象仅可用作 AJAX 响应,那么您可以在 Javascript 中使用。而且,如果您可以完全控制生成 JSON(在 PHP 中)的后端代码,那么您可以在那里执行...例如,可以调整 DB 查询以返回查询以使其具有组合字段。
  • 我试试,但我不适合我,你能帮我吗?@asiby
  • 当然。但我需要一些额外的信息。您有权访问数据库查询吗?

标签: php laravel datatable laravel-blade laravel-translatable


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-21
      • 2019-03-10
      • 2011-06-17
      • 2020-06-17
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多