【发布时间】:2013-04-23 06:07:58
【问题描述】:
我有一个组件,它有一个名为MyproductControllerGeneralsetting 的控制器,它扩展了JControllerForm。在MyproductControllerGeneralsetting内部,我正在覆盖父类的save方法以修改$_POST数据,然后覆盖方法调用父类的save方法进行实际保存。
这是MyproductControllerGeneralsetting中的覆盖方法:
/**
* We overwrite the saved form data and trim them to avoid spaces
*/
public function save($key = null, $urlVar = null){
if($_POST['jform']){
foreach($_POST['jform'] as $key=>&$value){
$value = trim($value);
}
}
// Finally, save the processed form data (calls JControllerForm-save())
parent::save('id', $urlVar);
}
问题是,即使我在这种覆盖方法中修剪了每个 POST 数据字段,但如果我提交了一些值,例如 'value'(注意最后的空格),它们不会被修剪。
我检查了JControllerForm 类的save 方法,它似乎是从这里的POST 获取数据:
$data = $this->input->post->get('jform', array(), 'array');
也许这就是原因?这是获取缓存数据还是什么?
【问题讨论】:
标签: joomla joomla-extensions overwrite