日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在yii2中,让你action参数支持POST数据的小方法

發布時間:2025/7/25 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在yii2中,让你action参数支持POST数据的小方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

我們先來看一段代碼

class RaController extends Controller {public $enableCsrfValidation = false;public function actionSay($username = '',$city = ''){echo "{$username} 來自 {$city}";} }

這里actionSay對應的url為index.php?r=ra/say,而 $username 和 $city 值的獲取來自于url的參數,比如

index.php?r=ra/say&username=abei2017&city=洛陽

總結 在yii2中,action參數都是來自于GET。

但是有的時候你可能需要讓action的參數來自于POST請求,怎么辦?

重載runAction即可,yii2為控制器提供了runAction方法,它負責生成一個具體的Action對象并傳遞參數,我們可以通過復寫它來實現,你可以看下yii2的生命周期來對其進行更好的了解。

那就開始干吧~,對上面的代碼復寫runAction

class RaController extends Controller {public $enableCsrfValidation = false;public function runAction($id, $params = []){$params = ArrayHelper::merge(Yii::$app->request->post(),$params);return parent::runAction($id, $params);}public function actionSay($username = '',$city = ''){echo "{$username} 來自 {$city}";} }

復寫了runAction后,它將作用于此控制器的所有action,當然你也可以通過runAction的$id來作用于某個action。比如

public function runAction($id, $params = []){if($id == 'say'){$params = ArrayHelper::merge(Yii::$app->request->post(),$params);}return parent::runAction($id, $params); }

現在去試試吧,對say動作提交POST數據username和city,成功接收。

轉載于:https://my.oschina.net/abei2017/blog/2208806

總結

以上是生活随笔為你收集整理的在yii2中,让你action参数支持POST数据的小方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。