2016-09-28 38 views
0

我使用Laravel構建了一個應用程序,它對我而言是新的,並且卡住了模型定義。
我有兩個表USERS和ACTIONS。

1)用戶可以創建一個「動作」或許多動作。
2)用戶也可以是由另一個用戶創建的操作的成員。
Laravel中的同一張表的兩個關係5.3

所以,如果我沒有錯,第一個關係是一對多的關係(用戶可以創建許多行動,一個動作只能由一個用戶創建) ,第二個是多對多(很多用戶可以有很多行動的成員)

我不知道laravel允許這樣做,也許我失去了一些東西

感謝大家

+0

是的,你可以做到這一點[雄辯的關係(https://laravel.com/docs/5.3/eloquent-relationships#defining-relationships) – Garric15

回答

1

很可能有多個關係在同一張桌子之間。

以下關係定義應爲你工作:

class User extends Model { 
    public function actions_created() { 
    return $this->hasMany(Action::class, 'creator_id'); 
    } 

    public function actions() { 
    return $this->belongsToMany(Action::class); 
    } 
} 

class Action extends Model { 
    public function creator() { 
    return $this->belongsTo(User::class); 
    } 

    public function users() { 
    return $this->belongsToMany(User::class); 
    } 
} 

請確保您有action_user表的地方來存儲用戶和行動之間的許多一對多的關係。它應該有3列:id,user_id和action_id。

+0

感謝答覆,它工作得很好:) – Devops

+0

@Devops你能然後將問題標記爲已回答? –

+0

我該怎麼做? – Devops

相關問題