我正在构建使用递归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)
那么,有什么好的方法可以只使用雄辩的模型来解决它,还是只能通过使用控制器等来解决?
答案 0 :(得分:3)
您不应调用$this->category()
作为函数。该函数调用关系,而不是相关模型。
要获取相关模型,请删除括号。
$this->category->url