Home >Backend Development >PHP Tutorial >YII2如何验证app客户端提交过来的表单数据

YII2如何验证app客户端提交过来的表单数据

WBOY
WBOYOriginal
2016-06-06 20:16:341255browse

如题....因为刚开始学习YII2框架,知道model里面的rules方法可以填写验证规则,但是他好像只验证pc端页面用activeForm生成的表单数据,那么手机客户端提交过来的表单数据怎样也能用上rules方法的验证规则呢?

回复内容:

如题....因为刚开始学习YII2框架,知道model里面的rules方法可以填写验证规则,但是他好像只验证pc端页面用activeForm生成的表单数据,那么手机客户端提交过来的表单数据怎样也能用上rules方法的验证规则呢?

他好像只验证pc端页面用activeForm生成的表单数据

这句定论就是错误的。

我的猜测你可能遇到问题了,问题的关键是在块赋值?

在Yii2的ActiveForm 中会默认给当前生成form定义个一个名称,对,就像你看到的:

<code><input name="LoginForm[username]"></code>

那么在LoginForm接收数据的时候可以这样:

<code>$form = new LoginForm;

$form->load(Yii::$app->requeset->post());</code>

而在手机端传到服务器端的数据是长这样的?

<code>[
    'username' => 'beep',
    ...
]</code>

所以我们在用form接收的时候可以这样:

<code>$form->load(Yii::$app->request->post(), '');
//亦或
$form->setAttributes(Yii::$app->request->post());</code>

那么,验证:

<code>$form->validate();

var_dump($form->errors);</code>

去熟悉下文档?

  • https://github.com/yiisoft/yii2/blob/master/docs%2Fguide%2Fstructure-models.md#validation-rules-

  • https://github.com/yiisoft/yii2/blob/master/docs%2Fguide%2Fstructure-models.md#massive-assignment-

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn