두 개의 ActiveRecord 클래스 Q & A가 있는데, db에는 다 대 다 관계가 있으므로 세 개의 테이블이 있습니다.yii2 viaTable, 가운데 테이블의 위치 속성
질문
| question_id | 이름 : |
| 1 | 시험 문제 |
대답
| Answer_id | 이름 : |
| 1 | 처음 |
| 1 | 두 번째 |
question_answers
| question_id | Answer_id | 위치 |
| 1 | 1 | 0 |
| 1 | 2 | 1 |
public function getAnswers(){
return $this->hasMany(Answer::className(), ['answer_id' => 'answer_id'])
->viaTable('question_answers', ['question_id' => 'question_id']);
}
문제는 어떻게 질문에 모두 대답을 DB에서 속성을 "위치"를 추가하는 것입니다?
viaTable은 ActiveQuery를 반환하지만 여기서는 "위치"를 추가 할 수 없다는 것을 알고 있습니다. Yii2로 어떻게해야하나요? 이러한 문제에 대한 몇 가지 기본 솔루션이 있습니까? 아니면 이에 대한 몇 가지 해결 방법이 있습니까?
P. 이 기능이 각 테이블에 대해 3 개의 쿼리를 실행한다는 것을 이해 했으므로 일부 캐싱 솔루션을 위해 만들어졌습니다.
나는 하나의 질문에 많은 답이 있습니다. Anwers가 많은 질문에 속할 수 없다면 그것은 이상 할 것입니다. – JorgeeFG
이러한 질문은 stackOverflow와 같지 않습니다. 위의 테이블 구조를 단순화합니다. 질문에는 다른 질문에서 재사용 할 수있는 답변이있을 수 있습니다. 신경 쓰지 마라. 주요 문제는 "중간 테이블에서 속성을 추가하는 방법"이다. 그러나 내가 이해하는 바에 따르면 그것은 원시 Yii 메커니즘에 의해 해결 될 수 없으므로 asnwer가 정확합니다. –
당신은 확실히 그 질문에 (그 대답은 많은 질문에 속할 수 있음) 언급해야합니다. – arogachev