我有两个模特之间的关系。我没有通过@foreach来浏览视图中的每个孩子,而是希望根据条件手动访问每个孩子,但不知道如何实现这一点。
父模型代码段
public function childs()
{
return $this->hasMany('Child');
}
儿童模型摘录
public function parent()
{
return $this->belongsTo('Parent');
}
view.blade.php
@foreach ($parents as $parent)
@if ($parent->childs()->count() == 2)
{{ $parent->find(1)->childs()->where('corner', '=', 'A')->first()->id }}
and
{{ $parent->find(1)->childs()->where('corner', '=', 'B')->first()->id }}
@endif
@endforeach
我想这样做的原因是因为总会只有2个孩子,我想按照特定的顺序展示它们,我想把它们放在'和'之间的话。
有了这个,它会带来满足条件的表中总子项的第一个结果,而不仅仅是属于我选择的符合条件的父项的子项。我之所以放第一个()是因为我得到了多个结果,但实际上只有一个孩子符合这个条件。
我非常确定我是否过于复杂,需要采用更简单的方法。
感谢您的帮助!!!
从Mudonat回应,这就是我所做的。
父模型代码段
public function childs()
{
return $this->hasMany('Child');
}
儿童模型摘录
public function parent()
{
return $this->belongsTo('Parent');
}
public function scopeCorner($query, $corner)
{
return $query->whereCorner($corner)->first();
}
view.blade.php
@foreach ($parents as $parent)
@if ($parent->childs()->count() == 2)
{{ $parent->childs()->corner('A')->id }}
and
{{ $parent->childs()->corner('B')->id }}
@endif
@endforeach