Laravel与雄辩模型的多重关系

时间:2019-04-09 19:59:38

标签: laravel relationship

我有3个表格,分别是“产品”,“图像”和“颜色”表格。

图像表既属于产品表,也属于颜色表。 在产品控制器内部,我需要获取与产品相关的数据,例如:产品图像和颜色表中的图像颜色。

产品型号:

This is my very extensive
...  keyword and I would like to split it

}

产品负责人:

namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Image;
use App\Color;
class Product extends Model {
public function images() {
    return $this->hasMany(Image::class);
}

图片模型:

$products = Product::with('images', 'images.colors')->get();

颜色模型:

use App\Product;
use App\Color;
class Image extends Model {
public function products() {
    return $this->belongsTo(Product::class);
}
public function colors() {
    return $this->belongsTo(Color::class);
}

2 个答案:

答案 0 :(得分:0)

我认为这是在这里回答: Laravel get related models of related models

在您的情况下: 返回Product :: find($ id)-> images-> colors-> load('colorTags');

答案 1 :(得分:0)

我刚遇到同样的问题。

问题似乎可能在于您使用“颜色”作为关系的方法名称。

尝试更改:

public function colors() {
    return $this->belongsTo(Color::class);
}

public function colours() {
    return $this->belongsTo(Color::class);
}

我认为它会起作用。

我也遇到过这个问题,它使用单词“ assets”和“ templates”作为关系名称。看来有些关键字会与雄辩的行为冲突。如果我们能在某处获得这些表格的列表,那将是很好的。