축구 테이블 앱을 만들려고합니다. 나는 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
테이블에 대한 참조. 예를 들어, 팀 수 : juventus
, milan
, chelsea
, arsenal
입니다. 그래서 내가 경기를 만들고 싶다면 - 처음에는 둥글게 만듭니다. 여기에 필요한 것은 라운드 수 (예 : 4 라운드)입니다. 이 라운드에서 경기를 추가하고 홈 팀 (예 : juventus
)을 선택한 다음 팀을 선택 (예 : milan
) 한 다음 제출합니다. 문제는 다음에 내가 경기를 만들 때 이미 경기되었던 경기를 만들 수 없어야한다는 것입니다. juventus
이 (가) milan
와 (과) 플레이했을 경우 사용자는 경기를 다시 만들어야합니다. 따라서 home_team_id
과 away_team_id
은 함께 고유해야하며 함께 사용하면 (별도로 사용하지 않아도됩니다)! 어떻게해야합니까? 나는 그것이 그냥 "일치"모델의 규칙에 넣어 경기를여러 열을 함께 고유하게 만드는 방법 yii2
0
A
답변
3
기존의 오버라이드 (override)
[['home_team_id', 'away_team_id'],
'unique', 'targetClass' => Match::className(),
'targetAttribute' => ['home_team_id', 'away_team_id']],
처럼 검증 대신의 데이터를 저장 방지하고 오류 메시지를 보여 주려고 :
['home_team_id','unique', 'targetAttribute' => ['home_team_id', 'away_team_id']]
다음 사항을 확인해야합니다.
- 속성 유효성 확인 사용
$model->save(true)
사용하는 경우 시나리오 배열에 속성이 있습니다.
public function scenarios(){ return array_merge(parent::scenarios(), [ ..., self::SPECIFIC_SCENARIO => ['home_team_id'] ]); }
관련 문제
- 1. 열을 기준으로 레일스 쿼리를 고유하게 만드는 방법
- 2. Yii2 Gridview : 여러 열을 정렬하는 방법?
- 3. 경로를 고유하게 만드는 방법
- 4. 데이터 프레임의 열을 고유하게 만드는 방법은 무엇입니까?
- 5. div에 여러 열을 만드는 방법
- 6. postgresql 결과를 고유하게 만드는 방법
- 7. M2M 항목을 고유하게 만드는 방법
- 8. MySQL - 두 개 이상의 열을 함께 고유하게 만들기
- 9. 멀티와 함께 멀티 열을 만드는 방법
- 10. Yii2 : 공통 경로를 만드는 방법
- 11. Yii2 형식으로 데이터베이스를 만드는 방법
- 12. 두 개의 3 열을 SQL 서버에서 고유하게 만드는 방법은 무엇입니까?
- 13. PHPMyAdmin에서 두 개 이상의 열을 고유하게 만드는 방법은 무엇입니까?
- 14. 여러 열을 표시하는 안드로이드 gridView를 만드는 방법
- 15. 구분 된 문자열에서 여러 열을 만드는 방법
- 16. 여러 행을 포함하는 작업 열을 만드는 방법
- 17. Xamarin.Forms에서 여러 열을 만드는 방법 ListView?
- 18. yii2 여러 필드를 만드는 방법은 무엇입니까?
- 19. 내 이름 필드를 고유하게 만드는 방법
- 20. Google 데이터 스토어에서 필드를 고유하게 만드는 방법
- 21. "-persist"를 GNUPLOT에 고유하게 만드는 방법
- 22. 열을 함께 결합하는 방법
- 23. 여러 열을 교환하는 방법
- 24. Ruby에서이를 고유하게 만드는 방법은 무엇입니까?
- 25. 태그를 고유하게 만드는 방법은 무엇입니까?
- 26. 중복 값을 포함하는 열을 ""만드는 방법
- 27. xml 스키마에서 특성을 고유하게 만드는 방법은 무엇입니까?
- 28. <p:dataTable> 각 열을 고유하게 식별해야합니다.
- 29. Qt 5에서 QTableWidget의 열을 고유하게 설정하십시오.
- 30. 비 키 열을 SSMS에서 고유하게 만들려면 어떻게해야합니까?
은 규칙에 문제가있을 것 같지 않습니다. 규칙을 삭제해도 기존 일치 항목은 여전히 덮어 씁니까? 그렇다면 문제는 다른 곳에서 발생합니다. – topher