私はこれを達成するために外部キーを使用することをお勧めします。
mysql> describe categories;
+--------------------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+-------------------+----------------+
| category_id | int(11) | NO | PRI | NULL | auto_increment |
| category_name | varchar(50) | NO | | NULL | |
| sub_category_id | int(11) | YES | | 0 | |
| created_at | timestamp | YES | | CURRENT_TIMESTAMP | |
| updated_at | timestamp | YES | | CURRENT_TIMESTAMP | |
+--------------------+-------------+------+-----+-------------------+----------------+
ここcategories
テーブルのcategory_id
にごsub_category_id
の参照を次の表のスキーマを参照してください。
これにより、サブカテゴリに複数のレベルを設定することもできます。
カテゴリモデル:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
protected $primaryKey = 'category_id';
protected $fillable = array(''category_name'sub_category_id');
public function Sub_Category(){
return $this->hasOne('App\Models\category','sub_category_id','category_id');
}
}