Yii2:使用urlManager将querystring参数替换为值
我有一个管理规则Yii2:使用urlManager将querystring参数替换为值,yii2,Yii2,我有一个管理规则 'rules' => [ 'products/<whatever:[-_0-9a-zA-Z]+>' => 'products/show', ], 但是a有一个错误:错误的请求(#400)缺少必需的参数:name 如何将产品的$名称传输到控制器,或者如何从控制器中的URL获取它?我想您应该在规则中指定变量的名称。您正在调用它无论什么,请将其更改为名称: 'rules' => [ 'products/&
'rules' => [
'products/<whatever:[-_0-9a-zA-Z]+>' => 'products/show',
],
但是a有一个错误:错误的请求(#400)缺少必需的参数:name
如何将产品的$名称传输到控制器,或者如何从控制器中的URL获取它?我想您应该在规则中指定变量的名称。您正在调用它
无论什么
,请将其更改为名称
:
'rules' => [
'products/<name:[-_0-9a-zA-Z]+>' => 'products/show',
],
“规则”=>[
“产品/”=>“产品/展会”,
],
正确完整的答案是你必须使用下面的规则
'rules' => [
'products/<name:[\-\w]+>' => 'products/show',
],
<?=Html::a($model->name,
Yii::$app->urlManager->createUrl([
'products/show',
'name'=>$model->slug
])
);
?>
完成上述所有设置后,打开浏览器并键入
http://yourdomain.com/products/some-product
它会告诉你
某些产品
当您必须创建指向该页面的链接时,让我们假设在菜单中,您在产品下列出了所有产品,并且您必须为所有产品创建指向详细信息页面的链接,即actionShow
,您将按照下面的方式进行操作
'rules' => [
'products/<name:[\-\w]+>' => 'products/show',
],
<?=Html::a($model->name,
Yii::$app->urlManager->createUrl([
'products/show',
'name'=>$model->slug
])
);
?>
您如何呼叫控制器?为您添加了一个答案,看看这是否有助于您的成功。但在这种情况下,我不得不在URL中写道:products/namesamsung450z
不,你错了@yiier,虽然gmc是对的,但他没有给出完整的答案。