2016-10-12 1 views
0

Я новичок в Yii2, поэтому у меня есть таблица Brands с их типами ('brand', 'author', 'company') и их имя slug, поэтому мне нужен URL-адрес 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 
    } 
    ... 
} 

Обратите внимание, что вам потребуется веб-сервер для настройки выполнения вашего приложения 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

Нет, переменная '$ slug', а также переменная '$ type' будут доступны контроллеру, чтобы делать все, что вы хотите – mmonem

+0

Спасибо за ответ. жаль, что это сбивает меня с толку. Если вы не возражаете, можете ли вы обновить свой ответ с помощью метода контроллера, пожалуйста. –

Смежные вопросы