1

と の 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として入手できます。お好きなように編集してご自由にお使いください。

4

1 に答える 1