0

php-activerecord内で、オブジェクトの関係を一括割り当てで更新できるようにするための回避策を知っている人はいますか?

ロードされたオブジェクト

$obj = Model::find(array(
                   'conditions'=>array('id=?', $id), 
                   'include'=>array('Relationship_one', 'relationship_two')
                   ));

コード

$obj->update_attributes(--post data--);

オブジェクトは正常に更新されますが、その関係は更新されません。

4

1 に答える 1

1

あまり答えはありませんが、投稿データで呼び出される関数を作成することで、この問題を修正しました。

  • 投稿データに対していくつかの健全性チェックを実行します(モデルの健全性チェックは別として、より正確なエラーを提供できるようにするため)。
  • このモデルに適切なフィールドを設定します
  • モデルの関係でその姉妹関数を呼び出します。

あなたが持っている利点は、あなたもこれらの関係を作ることができるということです!関係が存在しない場合(例:1対多の関係に初めて何かを追加する場合)、「ベース」モデルを更新できますが、関連付けを更新することはできません。最初に関係を作成する必要があります。モデル関数でそれを確認してから、リレーションモデルの関数を呼び出してジョブを終了できます。

于 2012-02-21T10:47:27.870 に答える