我嘗試創建足球桌應用程序。我有3個表 - teams(id, name)
,matches(id, home_team_id, away_team_id, round_id)
和rounds(id, round_num)
。 home_team_id
和away_team_id
是外鍵,引用teams
表。和round_id
是f.k.引用rounds
表。例如我有4支隊伍 - juventus
,milan
,chelsea
,arsenal
。所以如果我想創建匹配 - 首先我創建一輪。我所需要的只是插入一輪(例如第四輪)。然後我在這一輪添加比賽 - 選擇主隊(例如juventus
),然後選擇客隊(例如milan
)然後提交。問題是,下一次我將創建比賽時,我不應該能夠創建已經發揮的比賽。如果juventus
與milan
對戰,則用戶不應該能夠再次創建此匹配。所以我需要home_team_id
和away_team_id
是唯一在一起,只有在一起(不分開)!我應該怎麼做?我試圖驗證它像如何使多列獨一無二yii2
[['home_team_id', 'away_team_id'],
'unique', 'targetClass' => Match::className(),
'targetAttribute' => ['home_team_id', 'away_team_id']],
而是的防止存儲數據並顯示錯誤信息,它覆蓋現有的匹配
似乎有不符合您的規則的問題。如果刪除規則,現有的匹配是否仍然被覆蓋?如果是這樣的話,問題在別處。 – topher