我正在为项目开发自定义模块。我创建了一个自定义表单,并将自定义表单的数据保存在两个表中。现在,当表单在编辑模式下打开时,我无法从两个表中获取保存的数据。我不知道如何解决这个问题,请帮助我。
以下是我的两个表结构:
表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
--------------------------------
这里我附加了一个屏幕截图来解释自己。我想在' left'中选择已保存的选项值。 &安培; '右'编辑模式下的文本区域,值来自table2。
请建议我。提前谢谢。
答案 0 :(得分:0)
左边和右边是多选字段类型,这些字段以逗号分隔的字符串接收值。所以你提出的例子将以这种方式运作。 让我们考虑你有模型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);
}
答案 1 :(得分:0)
我找到了查询的解决方案。 此扩展程序是最好的示例click here
要解决此问题,需要编辑许多文件,如模型,资源和块文件。这就是我提到这个链接以了解完整过程的原因。 大多数需要注意的文件是:
希望这有助于其他人!