我有以下简单的控制器:
class OrdersController extends 'BaseController {
public function index()
{
$orders = Order::all();
return Datatables::of($orders)->make();
}
}
正在尝试使用bllim DataTables包来输出我的表。当我可以在上面的DataTables时,我会得到这个错误:
Call to undefined method Illuminate'Database'Eloquent'Collection::getQuery()
错误位于线路上的'Bllim'Datatables'Datatables.php
中:
$this->columns = $this->query_type == 'eloquent' ? $this->query->getQuery()->columns : $this->query->columns;
除非我弄错了,否则应该定义这个方法。那么这里缺少什么呢?
使用
使用这个捆绑包非常简单。只需创建自己的流利查询对象或雄辩对象而没有得到结果(这意味着不要使用get()、all()或类似的方法)并将其提供给Datatables。您可以自由使用所有Eloquent ORM和Fluent Query生成器功能。
通过调用all()
方法,您将返回一个Illuminate'Database'Eloquent'Collection
对象,在本例中该对象不包含getQuery()
方法,您需要传递一个Illuminate'Database'Eloquent'Builder
或Illuminate'Database'Query'Builder
。
试试这个:
return Datatables::of(Order::select(array('id', 'othercolumns')))->make();
或者这个:
$query = DB::table('orders')->select(array('id','othercolumns'));
return Datatables::of($query)->make();
选择要在阵列中的数据表中显示的列。