php - Laravel,如何确定查询构建器是否已包含 "order"?

标签 php laravel laravel-5 eloquent

如果关系还没有订单,我会尝试使用默认订单。但如果是这样,我不会使用默认设置。

$q = $this->items();

if (empty($q->orders)) {
    $q = $q->order();
}

请注意,order() 只是 BaseModel 类中的默认方法。出于某种原因,当我尝试在查询构建器上调用 orders 属性时,它显示 Undefined property,即使它是 Builder 类中的公共(public)属性.

不知道为什么,或者我该如何检查。

编辑:

我在路由中设置了一个完整的示例:

class Test extends \Illuminate\Database\Eloquent\Model {}

$router->get('/test', function () {
    $test = new Test;
    $q = $test->select('id')->orderBy('id', 'desc');
    $bindings = $q->getRawBindings();
    var_dump($bindings);
    return 'test';
});

转储只是吐出查询构建器对象而不是绑定(bind)?

最佳答案

经过一番折腾,终于搞定了。

所以实际上它是 Eloquent\Builder 的实例而不是 Query\Builder 所以需要做:

$q->getQuery()->orders

这使您可以访问查询对象。

关于php - Laravel,如何确定查询构建器是否已包含 "order"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937758/

相关文章:

php - 我想使用 PHP 的 PDO 将数据插入到 mysql 数据库中。但是没有插入数据

php - 如何修复stream_socket_enable_crypto() : SSL operation failed with code 1

php - 在中间件中获取 laravel 当前路由组

php - 限制文本区域的保留换行符

php - 是否可以对子查询创建的变量运行联接?

php - Laravel - 如何克隆关系枢轴及其属性?

PHP Mysql 多次插入 foreach 不起作用

php - magento成功页面变量

php - MySQL db 中的哪个结构适合 cat sub sub 情况

php - 预加载 : Use `with` on pivot with eloquent relationship