YII2如何驗證app用戶端提交過來的表單資料

來源:互聯網
上載者:User
如題....因為剛開始學習YII2架構,知道model裡面的rules方法可以填寫驗證規則,但是他好像只驗證pc端頁面用activeForm產生的表單資料,那麼手機用戶端提交過來的表單資料怎樣也能用上rules方法的驗證規則呢?

回複內容:

如題....因為剛開始學習YII2架構,知道model裡面的rules方法可以填寫驗證規則,但是他好像只驗證pc端頁面用activeForm產生的表單資料,那麼手機用戶端提交過來的表單資料怎樣也能用上rules方法的驗證規則呢?

他好像只驗證pc端頁面用activeForm產生的表單資料

這句定論就是錯誤的。

我的猜測你可能遇到問題了,問題的關鍵是在塊賦值?

在Yii2的ActiveForm 中會預設給當前產生form定義個一個名稱,對,就像你看到的:

那麼在LoginForm接收資料的時候可以這樣:

$form = new LoginForm;$form->load(Yii::$app->requeset->post());

而在手機端傳到伺服器端的資料是長這樣的?

[    'username' => 'beep',    ...]

所以我們在用form接收的時候可以這樣:

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

那麼,驗證:

$form->validate();var_dump($form->errors);

去熟悉下文檔?

  • 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-

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.