在yii2中,让你action参数支持POST数据的小方法
生活随笔
收集整理的這篇文章主要介紹了
在yii2中,让你action参数支持POST数据的小方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
我們先來看一段代碼
class RaController extends Controller {public $enableCsrfValidation = false;public function actionSay($username = '',$city = ''){echo "{$username} 來自 {$city}";} }這里actionSay對應(yīng)的url為index.php?r=ra/say,而 $username 和 $city 值的獲取來自于url的參數(shù),比如
index.php?r=ra/say&username=abei2017&city=洛陽總結(jié) 在yii2中,action參數(shù)都是來自于GET。
但是有的時候你可能需要讓action的參數(shù)來自于POST請求,怎么辦?
重載runAction即可,yii2為控制器提供了runAction方法,它負(fù)責(zé)生成一個具體的Action對象并傳遞參數(shù),我們可以通過復(fù)寫它來實現(xiàn),你可以看下yii2的生命周期來對其進行更好的了解。
那就開始干吧~,對上面的代碼復(fù)寫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}";} }復(fù)寫了runAction后,它將作用于此控制器的所有action,當(dāng)然你也可以通過runAction的$id來作用于某個action。比如
public function runAction($id, $params = []){if($id == 'say'){$params = ArrayHelper::merge(Yii::$app->request->post(),$params);}return parent::runAction($id, $params); }現(xiàn)在去試試吧,對say動作提交POST數(shù)據(jù)username和city,成功接收。
轉(zhuǎn)載于:https://my.oschina.net/abei2017/blog/2208806
總結(jié)
以上是生活随笔為你收集整理的在yii2中,让你action参数支持POST数据的小方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jenkins使用
- 下一篇: 关于Swift4.0 Method Sw