と の 2 つの AR クラスがあるDeck
としCard
ます。各デッキ レコードは、カード レコードの並べ替えられたリストであると想定されています。デッキ レコードを取得するときに、CTypedList のように処理できるようにしたいと考えています。
$Deck = Deck::model()->findByPk(1); // Retrieve the deck
$Card = $Deck->removeAt(0); // draw the first card (and remove it from the deck)
$Deck->shuffle(); // shuffle the deck
$n = $Deck->count(); // get the number of remaining cards in the deck
$Deck->save();
の後$Deck->save()
、データベース レコードはデックの新しい状態を反映する必要があります。つまり、カードの新しい順序と 1 枚のカードが削除されたということです。
編集:私のソリューションは ListBehavior と呼ばれ、AR を CList のように動作させる ActiveRecordBehavior です。コードはオープン ソースであり、gistとして入手できます。お好きなように編集してご自由にお使いください。