0

我正在为 Joomla 2.5 的后端做我的第一个组件。第一部分没问题,我用通用控制器创建了一个组件,现在我在表格中显示所有元素

为此,我按照本教程进行操作,但现在我想添加编辑、新建和删除等操作。我遵循了本教程,但是当我单击编辑时,例如。我去一个白页。我的名字组件是Busqueda,我的表是restaurantes

这是编辑动作模型/restaurante.php 的模型

class BusquedaModelRestaurante extends JModelAdmin{

    public function getTable($type= 'Restaurantes', $prefix='RestaurantesTable', $config=array()){
            return JTable::getInstance($type, $prefix, $config);
    }

    public function getForm($data = array(), $loadData = true){
        $form = $this->loadForm('com_busqueda.restaurante', 'restaurante', array('control' => 'jform', 'load_data' => $loadData));
        if (empty($form)) {
            return false;
        }
        return $form;
    }

    protected function loadFormData(){
        $data= JFactory::getApplication()->getUserState('com_busqueda.edit.restaurante.data', array());
        if(empty($data)){
            $data=$this->getItem();
        }
        return $data;
    }
}

这是我的模型/表单/form.xml

<?xml version="1.0" encoding="utf-8"?>
<form>
    <fieldset>
        <field
            name="id"
            type="hidden"
        />
        <field name="nombre" type="text" class="inputbox"
            size="40" label="nombre"
            description="Nombre" />

        <field name="direccion" type="text" class="inputbox"
            size="40" label="direccion"
            description="Direccion" />

        ...

    </fieldset>
</form>

在控制器/我有 restaurantes.php 和 restaurante.php。最后一个没有任何功能。最后在views/restaurante,我有view.html 和views/restaurante/tmpl/edit.php。

观点是:

class BusquedaViewRestaurante extends JView
{
    public function display($tpl = null)
    {
        $form = $this->get('Form');
        $item = $this->get('Item');

        // Check for errors.
        if (count($errors = $this->get('Errors'))) {
            JError::raiseError(500, implode("\n", $errors));
            return false;
        }

        $this->form =$form;
        $this->item =$item;

        $this->addToolbar();
        parent::display($tpl);
    }

    /**
     * Add the page title and toolbar.
     *
     * @since   1.6
     */
    protected function addToolbar()
    {
        $input =JFactory::getApplication()->input;
        $input->set('hidemainmenu', true);
        $isNew = ($this->item->id == 0);
        JToolBarHelper::title($isNew ? JText::_('NEW')
                                     : JText::_('EDIT'));
        JToolBarHelper::save('busqueda.save');
        JToolBarHelper::cancel('busqueda.cancel', $isNew ? 'JTOOLBAR_CANCEL'
                                                         : 'JTOOLBAR_CLOSE');               
    }
}

在edit.php中

<form action="<?php echo JRoute::_('index.php?option=com_busqueda&layout=edit&id='.(int) $this->item->id); ?>" method="post" name="adminForm" id="restaurante-form" class="form-validate">
    <fieldset class="adminform">
        <legend><?php echo JText::_('DETALLES'); ?></legend>
        <ul class="adminformlist">
            <li><?php echo $this->form->getLabel('nombre'); ?>
            <?php echo $this->form->getInput('nombre'); ?></li>

            <li><?php echo $this->form->getLabel('direccion'); ?>
            <?php echo $this->form->getInput('direccion'); ?></li>

....


        </ul>
    </fieldset>
    <div>
        <input type="hidden" name="task" value="" />
        <?php echo JHtml::_('form.token'); ?>
    </div>  

</form>

这与教程中出现的相同,但是当我单击编辑时,我会看到一个白页。

任何想法。我忘记做某事了。

谢谢。

4

1 回答 1

0

要查看可能出了什么问题,您需要在 php.ini 中启用 php 错误日志记录。当 php-xml 包过期时,我遇到了这个问题。在 php.ini 中,您可能需要添加/取消注释这些行

显示 PHP 错误

php_value error_reporting 6143 上的 php_flag display_errors

启用 PHP 错误记录

php_value error_log /Some_path/PHP_errors.log 上的 php_flag log_errors

于 2012-07-27T09:59:31.877 回答