Yii2:控制器动作参数用破折号?

j8ag8udp  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(197)

如果我有一个像https://example.com/controller/action?customer-id=7414这样的URL,我如何在我的操作参数中获得customer-id?由于变量名称中不允许使用破折号,我无法执行以下操作!

public function actionContact($customer-id) {   //syntax error! :)
    // ...
}

文档通常是很好的,但在这一点上,它只是沉默。我该如何解决这个问题?

bbmckpt7

bbmckpt71#

yii\web\Controller调用action时,它只绑定名称完全匹配的参数。在PHP中,破折号不能用在变量名中,所以它不可能像那样匹配。
如果你真的想让URL中的param为customer-id=XXX,那么你可以做的最简单的事情就是跳过action方法定义中的param,并在action本身中获取它:

public function actionContact() {
    $customerId = $this->request->get('customer-id');
    // or
    $customerId = \Yii::$app->request->get('customer-id');

    // ...
}

相关问题