Rob*_*Rob 5 php laravel eloquent laravel-5
如果关系还没有订单,我正试图去默认订单.但如果确实如此,我不使用默认值.
$q = $this->items();
if (empty($q->orders)) {
$q = $q->order();
}
Run Code Online (Sandbox Code Playgroud)
请注意,这order()
只是一个BaseModel
类中的默认方法.出于某种原因,当我尝试orders
在查询构建器上调用该属性时,它表示Undefined property
即使它是类中的公共属性Builder
.
不知道为什么,或者我如何检查这个.
编辑:
我在路线中设置了一个完整的例子:
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';
});
Run Code Online (Sandbox Code Playgroud)
转储只是吐出查询构建器对象而不是绑定?
经过一番活动,终于开始了.
所以实际上这是一个Eloquent\Builder
不Query\Builder
那么需要的实例:
$q->getQuery()->orders
Run Code Online (Sandbox Code Playgroud)
这使您可以访问查询对象.