2016-10-12 99 views
0

我是新的Yii2所以我有品牌表及其類型('brand', 'author', 'company')和他們的蛞蝓的名字,所以我需要像www.site.com/{brand_type}/{brand_slug}的URL沒有控制器的名稱,以便該怎麼做?如何在Yii2中自定義網址?

回答

0

這通常被稱爲漂亮的URL。要做到實現在Yii2把這個在您的應用程序配置文件'components'項下

'urlManager' => [ 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, 
    'rules' => [ 
     // ... 
     '<type:\w+>/slug:\w+>' => 'yourcontroller/youraction', 
     // ... 
    ], 
], 

的結果是,當你傳遞的格式的URL指定,您的控制器將$type$slug,你可以使用參數控制器預計將採取以下形式:

class YourcontrollerController extends YourBaseController 
{ 
    ... 
    public function actionYouraction($type, $slug) 
    { 
     // Do whatever you want with these variables 
    } 
    ... 
} 

請注意,您將需要您的Web服務器配置執行你的應用程序的index.php即使它不是在URL中。對於Apache可以做到這一點,例如,使用.httaccess (More details here)

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php 

The Definitive Guide to Yii 2.0有關該主題

+0

根據您的答案,我們需要添加規則每個金屬芯優良的部分? –

+0

不,'$'蛞蝓變量還有'$ type'變量將提供給任何你想要 – mmonem

+0

感謝您的回覆控制器做。對不起,這讓我感到困惑。如果你不介意,你可以用控制器方法更新你的答案。 –