Заполнение полей форм в бэкэнде из двух разных таблиц
В настоящее время у нас есть несколько форм, которые позволяют редактировать/удалять информацию, каждая из которых загружает данные из одной конкретной таблицы. Но что я хочу, так это иметь возможность загружать информацию Form.php
из разных таблиц.
В приведенном ниже коде есть имя поля имя файла изображения. Это поле принадлежит другой таблице, которая связана внешним ключом с той, которую я загружаю в первом предложении if
в строке $data = Mage:: registry('banners_data')->getdata();
, которая была сохранена на предыдущей странице в щелчок пользователя.
Таким образом, у меня есть основной идентификатор, и я могу искать в таблице изображений необходимые данные. Но как бы я ни старался, он неправильно загружает нужную мне информацию. Я пытался искать образцы, но безуспешно, или, может быть, я просто не использую правильные термины.
Вот часть моей функции _prepareForm, без какого-либо кода для загрузки таблицы изображений, так как это вызывало некоторые ошибки.
protected function _prepareForm() {
if (Mage::registry('banners_data')->getdata()) {
$data = Mage::registry('banners_data')->getdata();
}
elseif (Mage::getSingleton('adminhtml/session')) {
$data = Mage::getSingleton('adminhtml/session')->getdata();
Mage::getSingleton('adminhtml/session')->getdata(null);
}
else {
$data = array();
}
$form = new Varien_Data_Form(
array('id' => 'edit_form',
'action' => $this->getUrl('*/*/save', $params),
'method' => 'post',
'enctype' => 'multipart/form-data',
));
$fieldset = $form->addFieldset('banners_form',
array('legend' =>Mage::helper('banners')->__('Campaign details page')));
$fieldset->addField('banner_name', 'text',
array( 'label' => Mage::helper('banners')->__('Name'),
'class' => 'required-entry',
'required' => true,
'name' => 'banner_name',
'note' => Mage::helper('banners')->__('campaign name'),
'tabindex' => 1
));
.....
$fieldset->addField('imagefilename', 'file',
array( 'label' => Mage::helper('banners')->__('Image to upload'),
'name' => 'imagefilename',
'disabled'=> false,
'note' => Mage::helper('banners')->__('Image you want to upload'),
'readonly'=> true,
'tabindex'=> 10
.....
}
1 answers
Если вы уверены, что у вас есть идентификатор imagefilename в $data, затем загрузите имя файла изображения из базы данных и добавьте его в $data с помощью "imagefilename", затем, когда вы зададите значения, его следует выбрать. Если это не слишком накладные расходы, добавьте СОЕДИНЕНИЕ к начальной части загрузки данных и извлеките там имя файла изображения. Сэкономит вам еще одну поездку в базу данных.