如果我有一个像https://example.com/controller/action?customer-id=7414这样的URL,我如何在我的操作参数中获得customer-id?由于变量名称中不允许使用破折号,我无法执行以下操作!
https://example.com/controller/action?customer-id=7414
customer-id
public function actionContact($customer-id) { //syntax error! :) // ... }
文档通常是很好的,但在这一点上,它只是沉默。我该如何解决这个问题?
bbmckpt71#
当yii\web\Controller调用action时,它只绑定名称完全匹配的参数。在PHP中,破折号不能用在变量名中,所以它不可能像那样匹配。如果你真的想让URL中的param为customer-id=XXX,那么你可以做的最简单的事情就是跳过action方法定义中的param,并在action本身中获取它:
yii\web\Controller
customer-id=XXX
public function actionContact() { $customerId = $this->request->get('customer-id'); // or $customerId = \Yii::$app->request->get('customer-id'); // ... }
1条答案
按热度按时间bbmckpt71#
当
yii\web\Controller
调用action时,它只绑定名称完全匹配的参数。在PHP中,破折号不能用在变量名中,所以它不可能像那样匹配。如果你真的想让URL中的param为
customer-id=XXX
,那么你可以做的最简单的事情就是跳过action方法定义中的param,并在action本身中获取它: