PHP-Phalcon验证表单字段而不保存到数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP-Phalcon验证表单字段而不保存到数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2722字,纯文字阅读大概需要4分钟。
内容图文
![PHP-Phalcon验证表单字段而不保存到数据库](/upload/InfoBanner/zyjiaocheng/882/351fa3a9677a49c1952acaffa15e2c7e.jpg)
我需要验证表单字段并在不保存到数据库的情况下进行操作.
这就是我所做的
在控制器中
<?php
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();
}
}
}
?>
我正在尝试从模型进行验证,如下所示
<?php
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;
}
}
?>
我的查看文件如下
<?php
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));
?>
</form>
我如何实现以下目标,
1)检查表单字段是否按照控制器中模型中的规定正确验证.
2)我不想保存表单数据,仅对其进行验证.
3)在视图的输入字段下方显示相应的错误消息.
谢谢
解决方法:
您需要创建表单,绑定您的实体,然后根据请求进行验证.查看http://docs.phalconphp.com/en/latest/reference/forms.html#validation
编辑:要显示错误消息,您可以在控制器中执行此操作
// ...
$messages = array();
foreach ($user->getMessages() as $message) {
$messages[$message->getField()] = $message->getMessage();
}
$this->view->messages = $messages;
//...
现在您可以看到$messages.
我认为您确实应该在这种情况下使用表格.您尝试验证模型中的用户登录,但这是一个简单的表单验证.在模型中,您可以验证应用程序中用户的业务规则.
内容总结
以上是互联网集市为您收集整理的PHP-Phalcon验证表单字段而不保存到数据库全部内容,希望文章能够帮你解决PHP-Phalcon验证表单字段而不保存到数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。