多くの関係に多くのYiiフレームワーク
-
18-09-2019 - |
質問
のYiiフレームワークの多くの関係に多くを保存して更新する方法は何ですか?
解決
動作と優れた実装があります。
<のhref = "http://www.yiiframework.com/forum/index.php?/topic/6905-please-test-my-ar-enhancement-automatically-sync-many-many-table-when /」のrel = "noreferrer"> http://www.yiiframework.com/forum/index.php?/topic/6905-please-test-my-ar-enhancement-automatically-sync-many-manyを保存-calling -table-とき-呼び出す保存/ の
他のヒント
、あなたの唯一のオプションは、DAO(データベースアクセスオブジェクト)を使用し、それをSQLを指定することです。
ブログのデモは、このタスクを達成する方法を見てください。
(連想テーブルは1対多の関係に多対多の関係を壊すために必要とされる)モデルの間に多くの接続に多くのセットアップにMANY_MANY
の関係タイプを使用します
そして今、あなたがアクティブレコードのすべてのリレーショナル機能を使用することができます。
のYiiフレームワーク - Yiiのに決定的なガイド:データベース・リレーショナルアクティブレコード<を使用した作業/>
以下の拡張子が何をしたいん... のYiiフレームワーク - 拡張子:cadvancedbehaviorする
注意すべき重要なことは、各アップデートでは、拡張子が以前のすべてのレコードをクリアし、新しいものを作成します。 intermediatryテーブルが外部キー以外の余分なデータが含まれている場合ので、私はそれを使用することはありません。
は、
.. phpmyadminの中で、各テーブルの下のリレーショナルビューに行くのmysql level..byにそれを設定し、関係内のモデルクラスで必要なリレーショナルcondition..and使用MANY_MANYを提供することができ問題は、あまりにも一般的です。
多の関係に多くと通常のデータ要素を順次に独立して表示されます。だから、ちょうど別の後に1つの挿入アクションを実行する必要があります。
あなたの関係は依存更新を必要とする場合は、あなたがすべきユーザー SQLは、データベースレベルでをトリガします。つまり、データの整合性を確保し、アプリケーションのビジネスロジックでは非常に良好な分離を与えるでしょう。
CREATE TRIGGER some_trigger
AFTER UPDATE ON some_table
...
END IF;
同様の方法は、PHPレベルで一つの論理モデルにおけるリレーショナルデータをincapsulate(及び例えばそこ2-3 ARモデルと操作)とSQLはそれにロジックをトリガエミュレートすることである。