我有一个组件,它有一个名为MyproductControllerGeneralsetting
extends的控制器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 数据字段,但如果我提交了一些值,例如“值”(注意最后的空格),它们不会被修剪。
我检查了类的save
方法,JControllerForm
它似乎是从这里的 POST 获取数据:
$data = $this->input->post->get('jform', array(), 'array');
也许这就是原因?这是获取缓存数据还是什么?