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

Posted

技术标签:

【中文标题】Laravel 4 中的 Bllim DataTables 抛出未定义的 getQuery() 异常【英文标题】:Bllim DataTables in Laravel 4 throws undefined getQuery() exception 【发布时间】:2014-06-12 17:41:18 【问题描述】:

我有以下简单的控制器:

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】:

Usage

使用这个捆绑包非常简单。只需创建自己的流利 查询对象或 eloquent 对象而不得到结果(这意味着 不要使用 get()、all() 或类似方法)并将其交给 Datatables。您可以免费使用所有 Eloquent ORM 和 Fluent Query 生成器功能。

通过调用all() 方法,您将返回一个Illuminate\Database\Eloquent\Collection 对象,在这种情况下不包含getQuery() 方法,您需要传递Illuminate\Database\Eloquent\BuilderIlluminate\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();

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

【讨论】:

完全错过了。 掌心谢谢! 这是一种超级自然的@eComEvo :-) @TheAlpha 看来你知道很多 Laravel 关系。你可以看看我的问题吗?我找不到解决方案。我有一个类似的问题。 ***.com/questions/27447389/…

以上是关于Laravel 4 中的 Bllim DataTables 抛出未定义的 getQuery() 异常的主要内容,如果未能解决你的问题,请参考以下文章

$(...).DataTable 在使用 Laravel Mix 时不是函数

如何将控制器中的 Laravel 4.2 beforeFilter 转换为 Laravel 5.2 中的自定义中间件

Laravel 刀片中的 bootstrap 4.x 模态

Laravel 4 中的 Twig 模板

生产环境中的 Laravel 4.x 迁移

laravel 4中的错误