1

私は yii でモデルとフォームを処理する方法について多くのドキュメントを読み、以下で説明するケースで機能する解決策を見つけましたが、問題はコードの記述と保守が複雑であることです。提案を探しています。

ケースは次のとおりです。2 つの異なるモデルと、表形式の入力である 3 番目のモデル (同じモデルの複数のインスタンス) を一緒に保存する必要があります。

たとえば、ブログ投稿 (最初のモデル) を作成者情報 (2 番目のモデル) と参考文献のリスト (3 番目のモデル、表形式) と共に保存したい場合があります。

それらすべてを ajax を介して 1 つのステップで検証し、トランザクションとして保存したいと思います。

これらのリンクをすべて読みました。

http://www.yiiframework.com/wiki/559/tabular-input-validating-and-saving-related-models/

yii のマルチ モデル フォーム

http://www.yiiframework.com/wiki/19/how-to-use-a-single-form-to-collect-data-for-two-or-more-models/

http://www.yiiframework.com/wiki/218/how-to-use-single-form-to-collect-data-for-two-or-more-models-cactiveform-and-ajax-validation-edition/

http://www.yiiframework.com/doc/guide/1.1/en/form.table

http://www.yiiframework.com/wiki/362/how-to-use-multiple-instances-of-the-same-model-in-the-same-form/

http://www.yiiframework.com/forum/index.php/topic/14082-transaction-on-multiple-ar/

http://www.yiiframework.com/wiki/559/tabular-input-validating-and-saving-related-models/

https://github.com/yiiext/with-related-behavior

最後のリンクは興味深いものですが、共有できるベスト プラクティスが 1 つあれば、その人に感謝します。

4

1 に答える 1

1

次のようなものを探していると思います: http://www.yiiframework.com/extension/eadvancedarbehavior/

これはまさにあなたが求めていることを行う拡張機能です。


リンクから引用:

HAS_ONE と HAS_MANY

ユーザー HAS_ONE アドレスと HAS_MANY メール、およびアドレス/メール BELONGS_TO ユーザー (両方とも外部キー列 user_id を持っている) を想定します。

だからあなたは今できる:

$blog = new Blog();    
$blog->author = $author; //the author model object
$blog->references = array( $references1, $references2, ... ) ; //reference model objects
$blog->save();

フォームの設定方法は理解できたと思いますか? あなたが送信するリンクは、それについて非常に明確です。

于 2013-12-12T14:43:03.987 に答える