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\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();
选择要在数组中的数据表中显示的列。
【讨论】:
完全错过了。 掌心谢谢! 这是一种超级自然的@eComEvo :-) @TheAlpha 看来你知道很多 Laravel 关系。你可以看看我的问题吗?我找不到解决方案。我有一个类似的问题。 ***.com/questions/27447389/…以上是关于Laravel 4 中的 Bllim DataTables 抛出未定义的 getQuery() 异常的主要内容,如果未能解决你的问题,请参考以下文章
$(...).DataTable 在使用 Laravel Mix 时不是函数