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);
}
Другие вопросы по тегам