在 Blade/Laravel 中按 ID 选择一个 eloquent 对象
Choosing an eloquent object by ID in Blade/Laravel
我在数据库中有数百个对象,我们称它们为盒子。
这就是结构。
id
user_id
size_id
color_id
shape_id
现在我得到了数据库的 "size" 条目,其中包含这些条目:
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 制作一个 table。这将是控制器:
$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 选择 size/shape/color 的名称。
我该怎么做?
提前致谢。
使用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
class:
中的每个模型定义 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);
}
我在数据库中有数百个对象,我们称它们为盒子。
这就是结构。
id
user_id
size_id
color_id
shape_id
现在我得到了数据库的 "size" 条目,其中包含这些条目:
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 制作一个 table。这将是控制器:
$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 选择 size/shape/color 的名称。
我该怎么做?
提前致谢。
使用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
class:
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);
}