#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