Дублируйте запись AR и вставьте ее в базу данных

У меня есть модель AR, которую я пытаюсь продублировать, но мне просто нужно вручную изменить внешний ключ.

$_POST['competition_id'] = 99;
$prizes = CompetitionPrizes::model()->findAll('competition_id =:competition_id',array(':competition_id'=> $_POST['competition_id']));

Этот запрос в основном запрашивает таблицу призов и получает все строки для конкретного соревнования. С объектом призов я хотел бы в основном повторно вставить / дублировать ту же информацию, кроме идентификатора соревнования, который я хочу установить вручную.

Я сделал нечто подобное для объекта AR, который в основном имеет только одну строку и который работал хорошо, однако в этом случае в качестве соревнования может быть более одного приза, этого же кода не будет.

// My existing code for duplication process
$obj = Competitions::model()->find('competition_id=:competition_id', array(':competition_id' => $post['competition_id']));
$clone = clone $obj;
$clone->isNewRecord = true;
unset($clone->competition_id); // i want to remove this so it is auto inserted instead via the db
$clone->save();

Это прекрасно работает - как бы я изменил это на «коллекции» призов и скопировал бы это в базу данных при настройке моего собственного значения «Competition_id».

Примечание - я новичок в Yii, поэтому, пожалуйста, дайте мне знать, если я допустил какие-либо очевидные ошибки / плохую практику

Ответы на вопрос(4)

Ваш ответ на вопрос