0

注文を管理するための model_admin メニューを作成しています。「注文」データ オブジェクトには「パッケージ」との多対関係があり、「パッケージ」には「製品」との多多関係があります。新しい「パッケージ」と「製品」を追加/リンクするために、注文とパッケージで gridfield リレーション エディターを使用しています。したがって、基本的なプロセスは、[注文を追加] をクリックし、[パッケージを追加] をクリックしてから、[製品を追加] をクリックして、製品情報を入力することです。

この時点まではすべて正常に動作しますが、すべての製品フィールドを入力して [作成] をクリックすると、「Uncaught LogicException: byID を UnsavedRelationList で呼び出すことはできません」というエラーがスローされます。これは、「パッケージ」と「注文」が作成されていないため、製品を関連付けることができないためだと理解しています。

もちろん、最初に注文を作成し、次にパッケージを作成し、次に「製品」を追加すると、すべて正常に機能します。ただし、これは直感的ではなく、製品をパッケージに追加してから注文を作成することになっています。私の要件を実装する方法があるかどうか、または model_admin フォーム内で gridfields を使用することがこれに対する適切な解決策ではないかどうかはわかりません。

提案をお待ちしております。ありがとうございました。

4

1 に答える 1

1

これは通常、コア レコードが保存される前に、多対多または多対多の関係に対して何かをしようとしていることを意味します。onBeforeWrite ハンドラを確認してください。$this->isInDB()が falseの場合、関連リストのグリッドフィールドを非表示にすると便利なことがよくあります。

于 2015-08-19T10:51:10.750 に答える