2013-08-26 5 views
0

при разработке компонента MVC, я столкнулся со следующей проблемой: перед сохранением опубликованных данных из файла default.php некоторые данные должны быть пересмотрены, если необходимо. Из того, что я знаю до сих пор, защищенная функция prepareTable (& $ table) в конкретной модели должна охватывать мою потребность. Я начал с очень простым подходом, а именно:Joomla 2.5 MVC Model prepareTable function

protected function prepareTable(&$table){ 

$table=$this->getTable(); 

$table->image="HelloWorld"; 

} 

Я ожидаю, что после подачи шаблона конкретного поля в моей таблице имеет теперь значение «HelloWorld», но это не так.

Возможно, кто-то может дать мне совет, как обращаться с функцией prepareTable()?

Спасибо

ответ

2

Если все остальное настроено правильно метод 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); 
} 
+0

thx для вашего намека, он работает. – user2665206

+0

Рад, что помогло, чтобы помочь другим, вы могли бы пометить ответ как правильный. – Craig