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

Yii2: Controller action parameters with a dash?

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

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

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

yii\web\Controller调用动作时,它只绑定名称完全匹配的参数。 PHP 中不能在变量名中使用破折号,所以它永远不会像那样匹配。

如果你真的想在 URL 中使用参数作为 customer-id=XXX 那么你可以做的最简单的事情就是跳过操作方法定义中的参数并在操作本身期间获取它:

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

    // ...
}