【发布时间】:2017-09-21 11:03:27
【问题描述】:
在 Laravel 5.5 中,我尝试创建一个小型应用程序来管理几个卖家/商店的产品。
因此,我有四种不同的模型:
卖家.php
class Attribute extends Model
{
public function items()
{
return $this->belongsToMany(Item::class);
}
}
项目.php
class Item extends Model
{
public function seller()
{
return $this->belongsTo(Seller::class);
}
public function category()
{
return $this->belongsTo(Category::class);
}
public function attributes()
{
return $this->belongsToMany(Item::class);
}
}
Category.php
class Category extends Model
{
public function items()
{
return $this->hasMany(Item::class);
}
}
属性.php
class Attribute extends Model
{
public function items()
{
return $this->belongsToMany(Item::class);
}
}
对于属性和项目之间的多对多关系,我创建了一个数据透视表:
Schema::create('attribute_item', function (Blueprint $table) {
$table->integer('attribute_id')->unsigned()->index();
$table->foreign('attribute_id')->references('id')->on('attributes')->onDelete('cascade');
$table->integer('item_id')->unsigned()->index();
$table->foreign('item_id')->references('id')->on('items')->onDelete('cascade');
$table->primary(['attribute_id', 'item_id']);
});
整个应用程序的目标是:
- 通过属性(用于过滤或其他)按类别获取卖家的所有商品
- 获取卖家的特定商品并获取其属性和类别
我对 Laravel 关系方法以及在这种情况下使用哪种方法感到有些困惑。
hasManyThrough 还是多态关系更好?
我不得不承认我这里有一点逻辑问题。希望你能帮助我。
谢谢!
【问题讨论】:
-
你的用户模型是什么?
-
对不起,我描述的可能有点混乱。 “用户”是指卖方模型
标签: php laravel eloquent many-to-many relation