php phalcon 数据库,PHP-Phalcon验证表单字段而不保存到数据库

我需要验证表单字段并在不保存到数据库的情况下进行操作.

这就是我所做的

在控制器中

use Phalcon\Mvc\Model\Criteria;

use Phalcon\Paginator\Adapter\Model as Paginator;

use Phalcon\Mvc\View;

class UsersController extends ControllerBase {

public function loginAction() {

if($this->request->isPost()) {

$user = new Users();

$validates = $user->validation($this->request->getPost());

// now validation works fine, but cancelOnFail in model doesn't seems to work,

if($validates) {

echo 'valid inputs';

}

else {

print_r($user->getMessages());

// now how can we show these error messages below the corresponding input fields in the view.

// we would also like to show error message as follows, if a field has more than one validation conditions,

// Eg: say username have notempty and valid e-mail validation set in model so if username is empty show only not empty message,

// similarly if username is not empty and if its not a valid e-mail , show not valid email message.

}

exit();

}

}

}

?>

我正在尝试从模型进行验证,如下所示

use Phalcon\Mvc\Model\Validator;

use Phalcon\Mvc\Model\Validator\PresenceOf;

use Phalcon\Mvc\Model\Validator\Email;

class Users extends \Phalcon\Mvc\Model {

public function validation() {

$this->validate(new PresenceOf(

array(

'field' => 'username',

'message' => 'Username is required.',

'cancelOnFail' => true

)

));

$this->validate(new Email(

array(

'field' => 'username',

'message' => 'Username must be a valid e-mail.'

)

));

$this->validate(new PresenceOf(

array(

'field' => 'password',

'message' => 'Password is required.'

)

));

return $this->validationHasFailed() != true;

}

}

?>

我的查看文件如下

echo $this->tag->form(array("users/login", "role" => "form"));

echo $this->tag->textField(array('username', 'class' => 'form-control', 'placeholder' => 'E-mail', 'type' => 'email', 'tabindex' => 1));

echo $this->tag->passwordField(array('password', 'class' => 'form-control', 'placeholder' => 'Password', 'type' => 'password', 'tabindex' => 2));

echo $this->tag->submitButton(array('Login','class' => 'btn btn-sm btn-success btn-block', 'tabindex' => 5));

?>

我如何实现以下目标,

1)检查表单字段是否按照控制器中模型中的规定正确验证.

2)我不想保存表单数据,仅对其进行验证.

3)在视图的输入字段下方显示相应的错误消息.

谢谢

解决方法:

编辑:要显示错误消息,您可以在控制器中执行此操作

// ...

$messages = array();

foreach ($user->getMessages() as $message) {

$messages[$message->getField()] = $message->getMessage();

}

$this->view->messages = $messages;

//...

现在您可以看到$messages.

我认为您确实应该在这种情况下使用表格.您尝试验证模型中的用户登录,但这是一个简单的表单验证.在模型中,您可以验证应用程序中用户的业务规则.

标签:phalcon,validation,php

来源: https://codeday.me/bug/20191121/2054954.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值