【发布时间】:2020-01-15 17:06:45
【问题描述】:
我有 3 张桌子;
Sizes - columns: (id, height, width)
Media - columns: (id, media, description)
Price - columns: (id, size_id, media_id, price)
每个尺寸,在媒体表中都有每条记录,但价格由每个单独的尺寸和媒体决定。
我的目标是像这样显示每种尺寸和媒体及其价格;
8x10 - Media 1 - $20.00
8x10 - Media 2 - $24.00
8x10 - Media 3 - $30.00
8x12 - Media 1 - $24.00
8x12 - Media 2 - $28.00
8x12 - Media 3 - $32.00
到目前为止我尝试过的是(尺寸模型):
public function media() {
return $this->hasManyThrough('\App\Size', '\App\Prices');
}
public function prices() {
return $this->hasManyThrough('\App\Size', '\App\Prices');
}
不使用关系,我可以这样做;
$s = Size::all();
foreach ($s as $size) {
$m = Media::all();
foreach ($m as $media) {
$p = Price::where('enlarge_size_id', '=' , $size['id'])->where('enlarge_media_id', '=', $media['id'])->first();
echo $size['height'] . 'x' . $size['width'] . ' -> ' . $media['media'] . ': $' . $p['price'] . '<br />';
}
}
这可能在 Laravel 中的关系中实现吗?我只是在寻找一种更简洁的方法来查看、更新和添加。
【问题讨论】:
标签: laravel eloquent relationship