【问题标题】:Bllim DataTables in Laravel 4 throws undefined getQuery() exceptionLaravel 4 中的 Bllim DataTables 抛出未定义的 getQuery() 异常
【发布时间】: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;

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

【问题讨论】:

    标签: php laravel laravel-4 datatables


    【解决方案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 关系。你可以看看我的问题吗?我找不到解决方案。我有一个类似的问题。 stackoverflow.com/questions/27447389/…
    猜你喜欢
    • 2010-11-16
    • 2020-04-29
    • 2016-03-26
    • 2021-03-11
    • 2011-05-30
    • 2011-02-24
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多