url::canonical создает правильную ссылку?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Leffken
Сообщения: 115
Зарегистрирован: 2015.07.10, 15:49
Откуда: yola
Контактная информация:

url::canonical создает правильную ссылку?

Сообщение Leffken »

Всем привет.
хочу сделать каноническую ссылку, но думаю что результат не верный
делаю так:

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

$canonicalUrl = preg_replace(['/[a-zA-Z]=&/', '/[a-zA-Z]=$/', '/\?$/', '/\&$/'], '', Url::canonical());
        $this->registerLinkTag([
            'rel' => 'canonical',
            'href' => $canonicalUrl,
        ]);
Здесь я удаляю пустые get параметры регуляркой и создаю тэг link
В результате получаю:

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

<link href="http://localhost/search?param1=yyy&amp;param2=xxx" rel="canonical">
Меня смущает &amp; т.к. при выполнении registerLinkTag берется htmlspecialchars от ссылки
Нужно ли очищать пустые get параметры ?
Нужно ли добиться &, а не &amp; ?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: url::canonical создает правильную ссылку?

Сообщение ElisDN »

Leffken писал(а): 2017.04.27, 14:08 Нужно ли очищать пустые get параметры ?
Они вроде сами должны вычищаться в Url::canonical()
Leffken писал(а): 2017.04.27, 14:08 Нужно ли добиться &, а не &amp; ?
Не нужно.
Leffken
Сообщения: 115
Зарегистрирован: 2015.07.10, 15:49
Откуда: yola
Контактная информация:

Re: url::canonical создает правильную ссылку?

Сообщение Leffken »

ElisDN писал(а): 2017.04.27, 17:13 Они вроде сами должны вычищаться в Url::canonical()
Почему то не вычищаються, может конечно я не правильно реализовал. Просто добавил все возможные get параметры в параметры action:

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

public function actionSearch($x=null,$y=null,$z=null,$id=null)
А в коде метода уже добываю что пришло из GET:

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

Yii::$app->request->get();
Ответить