Отображение имени данных вместо идентификатора с помощью Datatable (Laravel 8)

#ajax #datatable #laravel-8 #php-7.4

Вопрос:

Я извлек данные с помощью datatable в индексе datatable. В индексе данные моей организации(Organisasi *малайский язык) отображаются в виде идентификатора организации вместо имени. У каждой организации есть определенное название, и оно уже указано в базе данных.

Итак, вот моя таблица индексов пользователей:

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

Он отображается только по идентификатору, равному 1 на основе изображения.

Как я могу отобразить имя с помощью столбца индекса ?

Вот моя модель user.php для отношений с организацией

user.php

 use AppModelsOrganisation;  class User extends Authenticatable {  public function getOrg()  {  return $this-gt;hasOne(Organisation::class,'id', 'organisation_id');  }  public function getOrgName()  {  return $this-gt;organisation-gt;name;  } }  

Пользовательский контроллер

 use AppModelsOrganisation;  class UserController extends Controller {  public function index()  {  $record = User::orderby('id', 'asc')-gt;get();  if(request()-gt;ajax()){  return DataTables()::of($record)  -gt;addIndexColumn()  -gt;addColumn('action', function($record){  $actionBtn = 'lt;a href="user_view/'.$record-gt;id.'" class="m-r-15 text-muted edit" data-toggle="tooltip" title="Papar"gt;lt;i class="fas fa-eye" style="color: rgb(0, 47, 255)"gt;lt;/igt;lt;/agt;  lt;a href="user_edit/'.$record-gt;id.'" class="m-r-15 text-muted edit" data-toggle="tooltip" title="Kemaskini"gt;lt;i class="fas fa-edit" style="color: rgb(0, 126, 48)"gt;lt;/igt;lt;/agt;  lt;a href="user_delete/'.$record-gt;id.'" onclick="return confirm('Pasti untuk dihapuskan?')" class="m-r-15 text-muted edit" data-toggle="tooltip" title="Hapus"gt;lt;i class="fas fa-eraser" style="color: rgb(255, 0, 0)"gt;lt;/igt;lt;/agt;';  return $actionBtn;  })  -gt;rawColumns(['action'])  -gt;make(true);  }  return view('user.index',compact('record'));  }  }  

index.blade.php

 lt;div class="container"gt; lt;table class="table table-striped" id="item_table"gt;  lt;theadgt;  lt;trgt;  lt;th scope="col"gt;#lt;/thgt;  lt;th scope="col"gt;Namelt;/thgt;  lt;th scope="col"gt;Emaillt;/thgt;  lt;th scope="col"gt;Organisationlt;/thgt;  lt;th scope="col"gt;Actionlt;/thgt; lt;/trgt; lt;/theadgt; lt;/tablegt; lt;/divgt;   lt;scriptgt;  $(document).ready(function(){  $('#item_table').DataTable({   columns: [  {  "data": null, "sortable": false,  render: function(data, type, row, meta){  return meta.row   meta.settings._iDisplayStart   1  }  },   { data: 'name'},  { data: 'email'},  { data: 'organisation_id'}  { data: 'action', name: 'action', orderable: false, searchable: false },  ],  })  }) lt;/scriptgt;  

Комментарии:

1. Не рекомендуется возвращать html в вашем контроллере, отображать его с помощью блейда в вашем html-шаблоне или, если вы используете JS, вы можете возвращать данные в формате JSON