Laravel 4中的Bllim DataTables抛出未定义的getQuery()异常

时间:2014-04-27 05:19:11

标签: php laravel laravel-4 datatables

我有以下简单的控制器:

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;

除非我弄错,否则应该定义此方法。那么这里缺少什么?

1 个答案:

答案 0 :(得分:10)

Usage

  

使用此捆绑包非常简单。只需创建自己的流利   查询对象或雄辩对象而不会得到结果(这意味着   不要使用get(),all()或类似方法)并将其提供给Datatables。您可以自由使用所有Eloquent ORM和Fluent Query   构建器功能。

通过调用all()方法,您将返回一个Illuminate\Database\Eloquent\Collection对象,在这种情况下,该对象不包含getQuery()方法,您需要传递Illuminate\Database\Eloquent\Builder或{ {1}}而不是。

试试这个:

Illuminate\Database\Query\Builder

或者这个:

return Datatables::of(Order::select(array('id', 'othercolumns')))->make();

选择要在数组中的数据表中显示的列。