0

プロジェクトのカスタム モジュールを開発しています。カスタム フォームを作成し、そのカスタム フォームのデータを 2 つのテーブルに保存しました。編集モードでフォームを開くと、両方のテーブルから保存されたデータを取得できません。この問題を解決する方法がわかりません。助けてください。

ここに私の2つのテーブル構造があります:

表1-

-------------------------
id | page_id | title

1  |  3      |  ABC

2  | 4       |  PQRS

3  | 10      |  XYZ

表2-

--------------------------------
id | page_id | child  | position

1  | 3       |  8     |  left

2  | 3       |  7     |  right

3  | 3       |  15    |  right

4  | 4       |  14    |  right

5  | 4       |  15    |  left

6  | 10      |  15    |  left

--------------------------------

ここにスクリーンショットを添付して、自分自身をより詳しく説明します。編集モードで「左」と「右」のテキスト領域に保存されたオプション値を選択したいのですが、値はtable2から取得されます。

フォームフィールド

私に提案してください。前もって感謝します。

4

2 に答える 2

0

Left と Right はここでは複数選択フィールド タイプであり、これらの種類のフィールドはカンマ区切りの文字列で値を受け取ります。したがって、提示した例はこのように機能します。モデル Table1 と Table2 があり、作成したコントローラーの編集アクションからテーブル モデルを渡すとします。

$table1Id = $this->getRequest()->getParam('id');
$table1Model  = Mage::getModel('page/table1')->load($table1Id);
if ($table1Model->getId()) {
         Mage::register('page_data', $table1Model);
...

フォーム ファイル Block/Adminhtml/Edit/Tab/Form.php には、メソッド $form->setData() があります。

if ( Mage::getSingleton('adminhtml/session')->getPageData() )
    {
        $form->setValues(Mage::getSingleton('adminhtml/session')->getPageData());
        Mage::getSingleton('adminhtml/session')->setPageData(null);
    } 
elseif ( Mage::registry('page_data') ) {
$values = Mage::registry('page_data')->getData();
$values['left'] = '8';//You can get this value from Table2 collection on basis of $values['page_id'] you got
$values['right'] = '7,15';////You can get this value from Table2 collection on basis of $values['page_id'] you got
        $form->setValues($values);
    }
于 2013-08-21T05:47:40.160 に答える
0

クエリの解決策を見つけました。この拡張機能は、ここをクリックする最良の例です

これを解決するには、モデル、リソース、ブロック ファイルなどの多くのファイルを編集する必要があります。そのため、完全なプロセスを理解するためにこのリンクに言及しました。注意が必要なほとんどのファイルは次のとおりです。

  • アプリ/コード/コミュニティ/[パッケージ名]/[モジュール名]/モデル/リソース/Pagesummary.php
  • アプリ/コード/コミュニティ/[パッケージ名]/[モジュール名]/モデル/Pagesummary.php
  • app/code/community/[PackageName]/[ModuleName]/Block/Adminhtml/Cms/Page/Edit/Tab/Pagesummary.php

これが他の人に役立つことを願っています!

于 2014-06-04T06:10:33.517 に答える