Heim  >  Artikel  >  Backend-Entwicklung  >  YII2如何验证app客户端提交过来的表单数据

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

WBOY
WBOYOriginal
2016-06-06 20:16:341218Durchsuche

如题....因为刚开始学习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-

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn