Laravel:产品、类别和子类别!(关系船)

Lub*_*kov 1 php mysql laravel eloquent

我有个问题!我做了一些东西,但不起作用,所以我会向你寻求帮助!所以问题是

我有这张桌子

products:
  name,subcategory_id,category_id,price,description
Categories:
  name,slug,timestamps
SubCategories:
  name,slug,timestamps
Run Code Online (Sandbox Code Playgroud)

我想当smo调用这个url/category/{category}/{subcategory} 来获取子类别的所有产品被调用!但是当产品没有子类别只能打开类别时,我的意思是/category/{category}

谢谢你们!

Lub*_*kov 5

在这里,我可以帮助你!

首先,类别和子类别只能使用一个表!

你可以这样做:

 |---------------------------------------
 |id| |parent_id|    |name|       |slug|
 |1 | | (NULL)  | Electronics | electronics
 |2 | | 1       | Phones      | phones
Run Code Online (Sandbox Code Playgroud)

现在品类电子有孩子 Phones

所以在你的Category.php模型中你可以做到

/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function parent() {
    return $this->belongsTo(self::class, 'parent_id');
}

/**
 * @return \Illuminate\Database\Eloquent\Relations\HasMany
 */
public function children() {
    return $this->hasMany(self::class, 'parent_id','id');
}
Run Code Online (Sandbox Code Playgroud)

现在您可以使用 foreach 来显示您的孩子和类别!希望有帮助!;)