2017-07-09 198 views
1
我目前使用datatabels 7.0和Laravel

Laravel的DataTable的搜索結果在我的網格5.4 數據顯示正確,但是當我想在嵌套關係欄搜索我得到以下錯誤:嵌套關係

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'course_semester.semester.name' in 'where clause' (SQL: select count(*) as aggregate from (select '1' as `row_count` from `videos` where LOWER(`videos`.`id`) LIKE %%te%% and LOWER(`videos`.`name`) LIKE %%te%% and LOWER(`course_semester`.`semester`.`name`) LIKE %%te%%) count_row_table) 

這裏是我的代碼

控制器

$videos = Video::with(['course_semester' => function ($query) { 
      return $query->with('course', 'semester'); 
     }])->select('videos.*'); 
     return Datatables::of($videos) 
       ->addColumn('check', '<input type="checkbox" name="selected-videos" value="{{$id}}">') 
       ->escapeColumns([]) 
       ->make(true); 

的Javascript

columns: [ 
       { data: 'check' , name: 'check',orderable: false, searchable: false }, 
       { data: 'id', name: 'videos.id' }, 
       { data: 'name', name: 'videos.name' }, 
       { data: 'course_semester.semester.name', name: 'course_semester.semester.name'}, 
       { data: 'course_semester.course.name', name: 'course_semester.course.name'}, 
       { data: 'status', name: 'videos.status' }, 
       { data: 'comment', name: 'videos.comment' }, 
       { data: 'video_date', name: 'videos.video_date' }, 
      ] 

任何人都可以幫助我,並注意到我的問題?

在此先感謝。

回答

2

因爲在這裏使用select(),所以不加載關係。此外,使用點語法爲nested eager loading

$videos = Video::with(['course_semester', 'course_semester.course']) 
+0

謝謝您的答覆,但yajrabox數據表documantation說[EloquentController.php - 機鋒數據表與預先加載(https://datatables.yajrabox.com/eloquent/關係) –

+0

@HamedYarandi在文檔中他們沒有使用嵌套的急切加載,你做的。 –

+0

用你的建議我得到了這個錯誤:'沒有可用的Illuminate \ Database \ Eloquent \ Collection引擎' –