В папке контроллеров (в админке) есть item.php в нем есть функция
function apply()
{
$id = JRequest::getVar('id');
$model = $this->getModel('item');
if ($model->store()) {
$msg = JText::_( 'Item Apply!' );
} else {
$msg = JText::_( 'Error Apply Item' );
}
$this->setRedirect('index.php?option=com_firm&controller=item&view=item&task=edit&cid[]='.$id, $msg);
}
Именно Item Apply! я вижу в админке когда сохраняю материал.
В модели (а это первое что я проверил) нет совсем функций которые делают апдейт нужных таблиц.
Далее смотрю папку tables в файле item.php есть класс - я так понимаю именно он и сохраняет данные. И вот тут у меня загвоздка.
Если мне нужно например добавить новое поле в таблицу #__firm_items то это 100% делается тут, уже проверил и сохранение работает.
class TableItem extends JTable
{
public $id = null;
public $category_id = null;
public $section_id = null;
public $created = null;
public $modified = null;
function TableItem(& $db) {
parent::__construct('#__firm_items', 'id', $db);
}
}
Но моя задача сохранить данные в другую таблицу.
Я по аналогии создал класс ниже в этом же файле
class TableStat extends JTable
{
public $infoUp = null;
public $workers = null;
public $budget = null;
public $salary = null;
function TableStat(& $db) {
parent::__construct('#__firm_stat', 'item_id', $db);
}
}
И вот теперь не пойму - мои поля, которые я бы хотел сохранять в админке находятся в форме, о которой я писал выше, которая заканчивается
<input type="hidden" name="option" value="com_firm"/>
<input type="hidden" name="id" value="<?php echo $this->item->id; ?>"/>
<input type="hidden" name="task" value=""/>
<input type="hidden" name="controller" value="item"/>
</form>
Как мне данные нужных полей отправить в класс TableStat?
И еще вопрос, в описании класса JTable от которого идет наследование указано что parent::__construct должен работать с уникальным полем на котором есть автоинкримент. А мн не нужен инсерт, мне нужен только апдейт и я хотел бы использовать поле item_id без автоинкримента.... Вот на этом пока и завис.