Заполнение полей форм в бэкэнде из двух разных таблиц


В настоящее время у нас есть несколько форм, которые позволяют редактировать/удалять информацию, каждая из которых загружает данные из одной конкретной таблицы. Но что я хочу, так это иметь возможность загружать информацию 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
.....
}
Author: Aasim Goriya, 2013-01-24

1 answers

Если вы уверены, что у вас есть идентификатор imagefilename в $data, затем загрузите имя файла изображения из базы данных и добавьте его в $data с помощью "imagefilename", затем, когда вы зададите значения, его следует выбрать. Если это не слишком накладные расходы, добавьте СОЕДИНЕНИЕ к начальной части загрузки данных и извлеките там имя файла изображения. Сэкономит вам еще одну поездку в базу данных.

 2
Author: Petar Dzhambazov, 2013-01-24 17:27:10