我有一個Hotel
模型,其中hasMany
Guests
,它又具有兩個動態屬性,如下所示。在Laravel for jQuery Datatable中的動態加載動態屬性
public function getNameAttribute(){
return $this->user->name;
}
public function getEmailAttribute(){
return $this->user->email;
}
現在我更願意將它們取爲$hotel->guests()->with('user')
。現在,當我將它用於Datatable時,出於顯而易見的原因,我無法在視圖中獲得名稱&電子郵件。所以我的問題是,我能否急於加載名稱&電子郵件屬性,以便每當訪客模型獲取時,所述屬性都可用。
請注意,我不會將其返回asArray
或asJson
,因此$attributes
數組的概念不適用(至少據我所知)。
控制器具有以下代碼:
return Datatables::of($guests)
->addColumn('email',function($guest){
return $guest->email;
})
->addColumn('name',function($guest){
return $guest->name;
})->make(true);
但是,數據表無法搜索姓名或電子郵件,因爲它們不是在數據庫中。
我使用jQuery的數據表中的代碼是
$(function() {
$('#guest-table').DataTable({
processing: true,
serverSide: true,
ajax: '{!! route('guests.data') !!}',
columns: [
{ data: 'name', name: 'name', orderable: false },
{ data: 'email', name: 'email', orderable: false},
{ data: 'mobile', name: 'mobile', orderable: false}
]
});
});
我用Laravel 5
和yajra/laravel-datatables
包這裏