Joomla 2.5 MVC Model prepareTable функция
При разработке компонента MVC я столкнулся со следующей проблемой: перед сохранением опубликованных данных из default.php некоторые данные должны быть пересмотрены, если это необходимо. Из того, что я знаю до сих пор, защищенная функция prepareTable(&$table) в конкретной модели должна покрывать мои потребности. Я начал с очень простого подхода:
protected function prepareTable(&$table){
$table=$this->getTable();
$table->image="HelloWorld";
}
Я ожидаю, что после отправки шаблона конкретное поле в моей таблице теперь будет иметь значение "HelloWorld", но это не так.
Может быть, кто-нибудь мог бы дать мне совет, как обращаться с функцией prepareTable()?
Спасибо
1 ответ
Если все остальное настроено правильно, prepareTable(&$table)
Метод уже передал объект таблицы.
Как правило, prepareTable()
в вашем классе не будет getTable()
, как вы замените $table
передаваемый, в котором уже есть данные строки, связанные с ним. Заменив его, вы эффективно отделяете от уже проделанной работы.
Я бы удалил эту строку, ваш метод выглядит так:
protected function prepareTable(&$table){
$table->image="HelloWorld";
}
Если вы посмотрите на простейшую реализацию prepareTable()
в основных файлах Joomla, в com_banners
вы увидите нечто очень похожее на ваш метод;
/**
* Prepare and sanitise the table data prior to saving.
*
* @param JTable A JTable object.
* @since 1.6
*/
protected function prepareTable(&$table)
{
$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
}