UrlManager. createUrl не видит параметр и срабатывает только 1 раз

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
YiiManDev
Сообщения: 44
Зарегистрирован: 2015.03.26, 11:16

UrlManager. createUrl не видит параметр и срабатывает только 1 раз

Сообщение YiiManDev »

Суть проблемы в том что я создал свой класс для создания ЧПУ. Но работает странно.
Во первых обрабатывает только 1ую ссылку.
Во вторых не видит $params['slug'] хотя он есть.
Пример ссылки которую я использую <a class="thumbnail" href="<?=Url::to(['/guide/page/view','slug'=>$one['slug']])?>">.

Код: Выделить всё

<?php
return [
    'class'=>'yii\web\UrlManager',
    'enablePrettyUrl'=>true,
    'showScriptName'=>false,
    'rules'=> [
        ['class' => 'common\components\urlRules\GuideUrlRule'],
    ]
];

Код: Выделить всё

<?php
namespace common\components\urlRules;
use yii\web\UrlRuleInterface;
use yii\base\Object;

class GuideUrlRule extends Object implements UrlRuleInterface
{
    public function createUrl($manager, $route, $params)
    {


        // Страница

        if ($route === 'guide/bird/view') {

            echo '"></a></div><pre>';
            //var_dump($manager);
            var_dump($params);
            var_dump($route);
            echo '</pre>';
            //die();


            if(isset($params['slug'])){
                return 'guide/'.$params['slug'];
            }
        }


        return false;  // this rule does not apply
    }

    public function parseRequest($manager, $request)
    {
        return false;  // this rule does not apply
    }
}
Последний раз редактировалось YiiManDev 2015.06.16, 07:20, всего редактировалось 1 раз.

astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: UrlManager. createUrl не видит параметр и срабатывает только 1 раз

Сообщение astronin »

дебажте
правильно все сделали как написано в документации?
а вообще то что вы хотите можно сделать и без создания отдельного класса

Аватара пользователя
YiiManDev
Сообщения: 44
Зарегистрирован: 2015.03.26, 11:16

Re: UrlManager. createUrl не видит параметр и срабатывает только 1 раз

Сообщение YiiManDev »

Странно но когда я добавил следующие правила все заработало:
Хотя параметр id я не использую, только slug.

'page/<slug>' => 'guide/page/view',
'page/<id>' => 'guide/page/view',

Ответить