yii2 убрать id из ссылки

305
18 ноября 2017, 12:30
'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            '' => '',
            '/admin' => '/admin/products/create',
            '/<cat:\S+>/<name:\S+>_<id:\d+>' => '/site/product',//роут товара
            '/<cat:\S+>_<cat_id:\d+>' => '/site/cats',//роут категории
            '/<cat:\S+>/<name:\S+>_<id:\d+>' => '/site/product',//новый роут товара
            '/<cat:\S+>_<cat_id:\d+>' => '/site/cats',//новый роут категории
            '/products/<name:\S+>_<id:\d+>' => '/site/product',
            '/videos/<url:\S+>' => '/site/video',
            '/articles/<url:\S+>' => '/site/video',
            '<module:\S+>/<controller:\S+>/<action:\S+>' => '/<module>/<controller>/<action>',
            '<module:\S+>/<controller:\S+>' => '/<module>/<controller>',
            '<action:\S+>' => '/site/<action>'
        ]

как убрать id из ссылок, подскажите как и где поправить

Answer 1

Если не нужны id в ссылках, нужно делать так(на примере одного роута):

В конфиге urlManager'a:

'products/<cat:[\w\-]+>/<alias:[\w\-]+>' => '/site/product', //роут товара

В контроллере SiteController:

public function actionProduct($cat, $alias)
{
    $product = Product::find()->where(['alias' => $alias])->limit(1)->one();
}

Тогда ссылка на товар будет иметь вид /products/my-super-category/my-super-tovar.

В базе в таблице products столбец alias должен быть уникальным.

READ ALSO
Fatal error: Cannot redeclare cmp() (previously declared in /home/bitrix/www/bitrix/templates/

Fatal error: Cannot redeclare cmp() (previously declared in /home/bitrix/www/bitrix/templates/

Возникла ошибка на главной при переезде на новый хостинг:

294
PHPExcel сохранить в PDF

PHPExcel сохранить в PDF

Здравствуйте! Есть шаблон xls файла, который я открываю через PHPExcel, произвожу редактирование и сохраняюНо проблема вот в чем

414
Ошибка С2550 и как её обойти

Ошибка С2550 и как её обойти

Выпадает ошибка(ошибка: C2550: MainWindow::MyClient: список инициализации конструктора должен использоваться только в месте определения конструктора)...

373
Шаблоны. Спецализации. С++

Шаблоны. Спецализации. С++

ПриветИзучаю C++(книга: С

237