Laravel是否可以在当前模型中获取相关模型的数据?

时间:2018-10-29 13:15:12

标签: php laravel oop laravel-5 eloquent

我正在构建使用递归URL构造的Laravel应用。我想知道是否可以在模型中访问hasone相关模型的数据,以将构造的url直接返回到视图,而无需控制器进行交互。\

public function link(){
    var_dump($this->category());
    $url = ['news'];
    $url[] = $this->category()->url;
    $url[] = $this->url;
    return implode('/',$url);
}

像这样的简单代码示例返回了这个

Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$url (View: /???/resources/views/common/news/full_preview.blade.php) (View: /???/resources/views/common/news/full_preview.blade.php) (View: /???/resources/views/common/news/full_preview.blade.php)

那么,有什么好的方法可以只使用雄辩的模型来解决它,还是只能通过使用控制器等来解决?

1 个答案:

答案 0 :(得分:3)

您不应调用$this->category()作为函数。该函数调用关系,而不是相关模型。

要获取相关模型,请删除括号。

$this->category->url

Here's the docs for relationships in laravel.