2017-07-07 5 views
0

私は、のカテゴリテーブルに対するbelongsToの関係を持つ複数のテーブルがある状況があります。Laravel morphに属していますか?

だから私は、この構造について考えた:

ユーザーテーブル:

id 
name 
email 
category_id <-- 

カテゴリーテーブル

id 
model_type 
name 

morph関係で可能これですか?

答えて

1

これは、model_typeがどのモデルのどのカテゴリに使用できるかの制約にすぎないため、これはありません。あなたはCategoryに所属する多くのモデルを持っているので、それとも、その一歩取ると、関係のための形質を使用してでき

class User extends Model 
{ 
    // User class 

    public function category() 
    { 
     return $this->belongsTo(Category::class)->where('model_type', '=', static::class); 
    } 
} 

:あなたはそのようにそれを設定する場合は次のような各モデルの関係上、その制約を追加しますその特性をCategoryの各モデルに配置します。

trait BelongsToCategory() 
{ 
    public function category() 
    { 
     return $this->belongsTo(Category::class)->where('model_type', '=', static::class); 
    } 
} 

class User extends Model 
{ 
    use BelongsToCategory; 

    // User class 
} 
関連する問題