我在Laravel项目中使用带有服务器端处理的数据表。我的状态列是整数,然后格式化
->editColumn('status', function($orders) use ($statuses) {
return $statuses[$orders->status];
})
但是这种方法会阻止status
列用于搜索。
是否有办法用假表加入查询?像这样的Smth
->join('fake_status_table', 'production_orders.status', '=', 'fake_status_table.id')
起草两个解决方案
解决方案#1
$orders= DB::table('production_orders')
->select(DB::raw("DECODE (status_id, 1, 'No started',
2, 'Running',
3, 'Done',
4, 'Defect')"))
解决方案#2
//create tamporary table
$status_table = DB::insert( DB::raw( "CREATE TEMPORARY TABLE statuses") );
$orders = \DB::table('production_requests')
// join it with drawing table
->join('statuses', 'production_requests.status', '=', 'statuses.id')
// Generate result
$result = Datatables::of($orders)->make(true);
// KILL TEMPORARY TABLE
$dropTable = DB::unprepared( DB::raw( "DROP TEMPORARY TABLE statuses" ) );
// RETURN RESULT
return $result;
答案 0 :(得分:0)
Views只不过是一张临时表......
但它是表本身的副本..你应该根据你的需要创建一个视图..如果你想拥有整个表的视图..那么
CREATE VIEW test.v AS SELECT * FROM t;
甚至
CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
然后你应该从控制器返回一些数据并按照datatables
中的惯例构建coloumn喜欢这个
Jquery:
$(document).ready(function() {
$('#example').DataTable();
} );
然后前往桌子!!
希望这有助于你