我有数百个对象,我们称之为数据库中的框。
这将是结构。
id
user_id
size_id
color_id
shape_id
现在,我为这个条目输入了一个“大小”条目:
id = 1
name = small
id = 2
name = big
与其他相同,例如颜色:
id = 1
name = red
id = 2
name = blue
id = 3
name = green
id = 4
name = yellow
与形状相同。你知道这个演习。
我想用Blade制作一张桌子。这将是控制器:
$boxes = boxes::where("user_id", Auth::user()->id)->get();
$sizes = size::all();
$colors = colors::all();
$shapes = shapes::all();
return view()... etc etc
现在在HTML / Blade中:
@foreach($boxes as $box)
<td>{{$box->name}}</td>
<td>{{$sizes->...}}</td>
<td>{{$shape->...}}</td>
<td>{{$color->...}}</td>
...
我想根据框中给出的ID选择尺寸/形状/颜色的名称。
我该怎么做?
提前致谢。
答案 0 :(得分:2)
使用with()
方法加载所有已创建的数据:
boxes::with('size', 'color', 'shape')->where('user_id', auth()->id())->get();
然后在视图中:
@foreach($boxes as $box)
<td>{{ $box->name }}</td>
<td>{{ $box->size->... }}</td>
<td>{{ $box->shape->... }}</td>
<td>{{ $box->color->... }}</td>
要完成这项工作,您还需要为Box
类中的每个模型定义belongsTo()
关系:
public function size()
{
return $this->belongsTo(Size::class);
}
public function shape()
{
return $this->belongsTo(Shapes::class);
}
public function color()
{
return $this->belongsTo(Colors::class);
}