Ошибка Joomla 3.x «Ошибка при ошибке со следующей ошибкой» - без дополнительной информации

Я написал кучу пользовательских компонентов, и только одна из них имеет следующую проблему. Когда я нажимаю на отдельную строку в списке администраторов компонента для ее редактирования, я получаю печально известный:

  

"Ошибка при ошибке со следующей ошибкой:"

Теперь, конечно, у нас была вся эта ошибка в Joomla, однако, как правило, с ней больше информации, например, я не знаю, AN ERROR ??? Я поднял уровень ошибки до максимума, искал журналы PHP, устанавливал Debug System и все еще нечего найти. Стоит отметить, что «ошибка» на самом деле не мешает мне выполнить редактирование, за исключением того факта, что когда я нажимаю Save & Закрыть данные сохраняются, хотя поток страниц не возвращается в список администратора. Я должен нажать кнопку «Отменить /закрыть», чтобы вернуться.

Я создал этот и другие рабочие компоненты с помощью Component Creator. Я не применяю ни один из методов таблицы и только метод сохранения в модели.

Также стоит отметить, что я сделал Global Check-In, а также просмотрел базу данных для любых связанных проверочных значений и не нашел ни одного. я подумайте, что «выезд» - это красная селедка.

Любые идеи о том, как отладить эту проблему, приветствуются.

Класс таблицы:

<?php
 defined('_JEXEC') or die;
 /**  * clubofficer Table class  */ 

class Curling_org_dataTableclubofficer extends JTable {
    /**
     * Constructor
     *
     * @param JDatabase A database connector object
     */
    public function __construct(&$db) {
       parent::__construct('#__curling_club_officers', 'id', $db);
    }
}

С уважением, Роб

1 голос | спросил Rob 10 Mayam15 2015, 01:50:22

1 ответ


1

Эта ошибка будет отображаться при попытке отредактировать строку и оставить ее без проверки. Проверьте свой основной контроллер (например, класс ComponentNameController в вашем контроллере.php), такой код:

if ($vName == 'form' && !$layout && ! $this->checkEditId('com_componentname.edit.itemname', $id))
{
    // Somehow the person just went to the form - we don't allow that.
    throw new Exception(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id), 403);
}

Вы можете добавить кнопку регистрации в свой список, чтобы быстро проверить такие строки.

<?php if ($item->checked_out) : ?>
    <?php echo JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, 'itemname.', $canCheckin); ?>
<?php endif; ?>

И, наконец, следующие требования к правильному использованию функциональности формы Joomla.

  1. Вам нужно иметь два столбца в вашей таблице базы данных - «checked_out», «checked_out_time»
  2. Переопределить JControllerForm в вашем субконтроллере (для страницы формы).
  3. Вы можете переопределить allowEdit JControllerForm, чтобы запретить пользователю проверять строку, если вам нужно проверить некоторые разрешения и т. д.

Наконец, используйте yourcontroller.save (параметр «task» вашего действия формы или скрытое поле), чтобы правильно проверить строку. Если вы используете метод yourcontroller.apply , он сохранит строку, извлеченную до сохранения.

например

<button type="button" onclick="Joomla.submitbutton('controllername.save')">Save</button>

или в представлении формы администратора, добавьте кнопку панели инструментов, чтобы сохранить

JToolbarHelper::save('controllername.save');

Update: Вот некоторые возможные случаи возникновения этой ошибки:

  1. Невозможно загрузить строку в ваш класс jtable (проверьте, правильно ли определен класс JTable для вашего элемента)
  2. Вы пытаетесь проверить строку, которую уже проверил другой пользователь (это может быть не так, поскольку вы сказали, что все ваши строки таблицы имеют значение checked_out как 0)

Поэтому я считаю, что проблема связана с вашим классом таблицы.

ответил Nagarjun 10 Mayam15 2015, 06:56:53

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132