我使用WP MVC中给出的方法验证了我的表单字段,它只闪烁了条形图,并且没有在条形图中给出描述。我在这里添加了代码和屏幕截图。任何疯狂的猜测或想法来修复这个?
在模型中,我给出了验证码:
/app/model/currency.php
var $validate = array(
'currency_title' => array(
'rule' => 'not_empty',
'pattern' => '/^[A-Za-z]/',
'message' => 'Enter Capitalized Currency Title'),
'currency_code' => array(
'rule' => 'not_empty',
'pattern' => '/[A-Z]/',
'message' => 'Enter Currency Code - CAPITAL Alphabets only'),
'currency_numeric_code' => array(
'rule' => 'not_empty',
'rule' => 'numeric',
'message' => 'Enter Currency Numeric Code - Only Numbers')
);
admin_controller中的create_or_save()函数将被覆盖:
public function create_or_save() {
if (!empty($this->params['data'][$this->model->name])) {
$object = $this->params['data'][$this->model->name];
if (empty($object['id'])) {
// This 'if' is necessary for the fields in the form to be validated
if ($this->model->create($this->params['data'])) {
$id = $this->model->insert_id;
$url = MvcRouter::admin_url(array('controller' => $this->name, 'action' => $this->_redirect_action, 'id' => $id));
$this->flash('notice', 'Successfully created!');
}
else
{
$this->flash('error', $this->model->validation_error_html);
}
$this->redirect($url, $msg);
}
else
{
if ($this->model->save($this->params['data'])) {
$this->flash('notice', 'Successfully saved!');
$url = MvcRouter::admin_url(array('controller' => $this->name, 'action' => $this->_redirect_action, 'id' => $id));
$this->redirect($url);
}
else
{
$this->flash('error', $this->model->validation_error_html);
}
}
}
}
在上面的代码中,第三个' if'条件是成功验证的条件,但它被跳过,第一个' else'满足条件只显示上面给出的屏幕截图。
等待有用的帮助/想法/猜测。
感谢。
答案 0 :(得分:0)
create_or_save()函数被添加到每个模型的admin_controller中以验证字段。
我不知道这是否是唯一可用的解决方案,并且是合法的,但问题现在已经解决了。
这种方法与“代码可重用性”政策形成对比,在创建替代解决方案之前,我离开了,但现在,请遵循这种方法。
谢谢大家。