0
下面的代码运行,另一个不运行。代码在foreach循环中运行。 有谁知道为什么第一个不运行?Laravel从视图访问一对一关系
{{ Status::find($workorder->statuses_id)->name }} //this doesn't
{{ Status::find(1)->name }} //this works
下面的代码运行,另一个不运行。代码在foreach循环中运行。 有谁知道为什么第一个不运行?Laravel从视图访问一对一关系
{{ Status::find($workorder->statuses_id)->name }} //this doesn't
{{ Status::find(1)->name }} //this works
假设你有这样的定义你们的关系...
class Workorder extends Eloquent {
public function status() {
return $this->hasOne('Status');
}
}
你需要做的:
{{ Status::find($workorder->status->id)->name }}
这个工作对我来说没有任何问题。
另外,如果你想使用你最初提供的语法,你可以在工单类像这样定义一个方法:
public function getStatusesIdAttribute() {
return $this->hasOne('Status')->first()->id;
}
...但就是有点别扭,可能不是最好的方法。
感谢您的帮助,我得到了它的工作。还有一件事,我检查了这一点。在foreach内部我也可以像访问$ workorder-> status_id-> name这是可能的吗?我似乎正在尝试获取非对象的属性 – momoterraw
只要状态表中存在“名称”列,就应该为$ workorder-> status-> name! – ARW
这应该是真的吗?然后,我的模型出了问题。该死的! – momoterraw