Пишу компонент под ждумла 3. Суть такая. Зарегеный пользователь видит форму, заполняет ее, потом отправляет ответ. Однако в процессе сохранений данных формы происходит ошибка. Довольно странно, не могу разобраться, что за ошибка?
Fatal error: Call to undefined method BeskModelAdd_Product::save() in Z:\home\localbesk\www\libraries\legacy\controller\form.php on line 691
Сохранение происходит стандартным способом - я не переопределял метод save в модели.
Класс модели из файла /tml/default.php:
class BeskModelAdd_Product extends JModelForm
{
protected $item;
public function getForm($data = array(), $loadData = true){
$form = $this->loadForm('com_besk.add_product', 'add_product', array('control' => 'jform', 'load_data' => true));
if (empty($form)) {
return false;
}
return $form;
}
public function getTable( $type = "besk", $prefix = 'BeskTable', $config = array() )
{
return JTable::getInstance( $type, $prefix, $config );
}
protected function loadFormData()
{
$data = JFactory::getApplication()->getUserState( 'com_besk.edit.add_product.data', array() );
return $data;
}
public function allowSave(){
return true;
}
}
Все нормально, форма получена, потом она отображается, затем в массиве пост есть данные. А потом бац- ошибка.
Вот еще код вывода формы :
<?php
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
?>
<form action="<?php echo JRoute::_('index.php?option=com_besk&view=add_product&id='.(int)$this->item->id); ?>" method="post" name="adminForm" id="add_product_form">
<?php
foreach($this->form->getFieldset() as $field)
{
echo $field->label;
echo $field->input;
}
?>
<div>
<input type="hidden" name="task" value="add_product.save" />
<?php echo JHtml::_('form.token'); ?>
<button type="submit" class=""><?php echo JText::_('Submit'); ?></button>
<?php echo JHtml::_('form.token'); ?>
</div>
</form>
Вроде соответсвие полей класса таблицы, полей sql таблицы и формы в наличии...
Может подскажет кто че нить?