eCo*_*Evo 6 php datatables laravel laravel-4
我有以下简单的控制器:
class OrdersController extends \BaseController {
public function index()
{
$orders = Order::all();
return Datatables::of($orders)->make();
}
}
Run Code Online (Sandbox Code Playgroud)
尝试使用bllim DataTables包输出我的表.当我上面的DataTables时,我收到此错误:
Call to undefined method Illuminate\Database\Eloquent\Collection::getQuery()
Run Code Online (Sandbox Code Playgroud)
错误位于\Bllim\Datatables\Datatables.php该行:
$this->columns = $this->query_type == 'eloquent' ? $this->query->getQuery()->columns : $this->query->columns;
Run Code Online (Sandbox Code Playgroud)
应该定义这个方法,除非我弄错了.那么这里缺少什么?
The*_*pha 11
使用此捆绑包非常简单.只需创建自己的流畅查询对象或雄辩对象而不获取结果(这意味着 不要使用get(),all()或类似方法)并将其提供给Datatables.您可以自由使用所有Eloquent ORM和Fluent Query Builder功能.
通过调用该all()方法返回一个Illuminate\Database\Eloquent\Collection对象,在这种情况下不包含该getQuery()方法,您需要传递一个Illuminate\Database\Eloquent\Builder或Illuminate\Database\Query\Builder相反.
试试这个:
return Datatables::of(Order::select(array('id', 'othercolumns')))->make();
Run Code Online (Sandbox Code Playgroud)
或这个:
$query = DB::table('orders')->select(array('id','othercolumns'));
return Datatables::of($query)->make();
Run Code Online (Sandbox Code Playgroud)
选择要在数组中的数据表中显示的列.