Hit*_*esh 4 orm foreign-keys laravel eloquent laravel-6
类别表
产品表
我想创建与类别表的关系 ->id 与产品表category_id 建议对此关系 数组与整数列关系的任何想法
控制器
Products::with('category')->get();
Run Code Online (Sandbox Code Playgroud)
产品型号
public function category() {
return $this->hasMany(App\Models\Categories::class, 'id', 'category_id');
}
Run Code Online (Sandbox Code Playgroud)
类别型号
public function product() {
return $this->belongsTo(Products::class,'category_id', 'id');
}
Run Code Online (Sandbox Code Playgroud)
如果您希望它起作用,您应该创建多对多关系。
这样,您的产品和类别就可以正确链接,如果您想向产品添加新类别,反之亦然,您只需将类别和产品的 ID 添加到category_product 表中即可。
然后对于您的关系方法,在您的 Product.php(模型)中您将获得以下关系方法:
/**
* @return BelongsToMany
*/
public function categories(): BelongsToMany
{
return $this->belongsToMany(Category::class);
}
Run Code Online (Sandbox Code Playgroud)
在您的 Category.php (模型)中:
/**
* @return BelongsToMany
*/
public function products(): BelongsToMany
{
return $this->belongsToMany(Product::class);
}
Run Code Online (Sandbox Code Playgroud)
您现在可以使用以下方式获取产品的所有类别:
$product = Product::first();
$product->categories;
Run Code Online (Sandbox Code Playgroud)
只是为了一些额外的信息。您可以使用模型来存储关系。
例如,您想向产品添加类别 1、2、3。
您可以简单地执行以下操作:
$product = Product::first();
$product->categories()->sync([1, 2, 3]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8142 次 |
| 最近记录: |