當前位置:
首頁 >
在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数据的小方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jenkins使用
- 下一篇: 关于Swift4.0 Method Sw