2016-04-27 25 views
9

Bir kullanıcı domain/page'a eriştiğinde, bunları controller/action/100 adresine yönlendirmem gerekir. URL aracılığıyla herhangi bir parametre iletmek istemiyorum, ancak URL kurallarına eklemek istiyorum.yii2 yönlendirme - pass parametresini kurallara göre yönlendirmek için

Aşağıdaki kodu, yapılandırma dosyasına ekledim.

'urlManager' => [ 
    'rules' => [ 
     'login' => 'site/login', // working 
     'about' => 'cms/page/10' // Not Working 
     'about' => 'cms/page?id=10' // Not Working 
    ], 
], 

İlk kural gayet iyi çalışıyor.

Rota için parametreyi URL kurallarına geçirebilir miyim?

cevap

7

Sen defaults kullanmak ve açıkça kural beyan gerekir: Eğer UrlManager ile bir URL oluştururken dönüşümü önlemek istiyorsanız örneğin Url::to() UrlManager ve kullanır (Bu kuralın 'mode' => \yii\web\UrlRule::PARSING_ONLY ekle

'urlManager' => [    
    'rules' => [ 
     'login' => 'site/login', 
     [ 
      'pattern' => 'about', 
      'route' => 'cms/page', 
      'defaults' => ['id' => 10], 
     ] 
    ], 
], 

onun Kurallar ve ters yönde çalışır, yani about numaralı bağlantıyı oluşturacaktır

Web sunucunuzda bir yönlendirme yapılandırmayı da düşünebilirsiniz.

+0

çalışma çantasına teşekkür ederim – suneeth