我有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);
}
答案 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”作为关系名称。看来有些关键字会与雄辩的行为冲突。如果我们能在某处获得这些表格的列表,那将是很好的。