Url

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Auramel
Сообщения: 80
Зарегистрирован: 2017.11.17, 14:39
Откуда: Russia, Ufa
Контактная информация:

Url

Сообщение Auramel »

Работал с формами. Все работает :D
Недавно, обратил внимание на Url, есть следующее правило:

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

'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>'
то есть, все делается, примерно, так:

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

/user/view/1
есть view (форма)

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

<?= Html::beginForm(['can-update', 'id' => $form->id], 'POST', [
    'class' => 'form__block'
]) ?>
в ней же, ради debug, написал

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

print_r(\yii\helpers\Url::to(['all', 'id' => 1]));
Url формы выглядит так:

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

/user/can-update?id=19
Url из \yii\helpers\Url выглядит так:

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

/user/all/1
Посмотрел исходник Html::beginForm()... Там прямо на первой же строке делается

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

$action = Url::to($action);
я немного в замешательстве :)
фича или баг?
Auramel
Сообщения: 80
Зарегистрирован: 2017.11.17, 14:39
Откуда: Russia, Ufa
Контактная информация:

Re: Url

Сообщение Auramel »

Кажется, я понял, что дело в названии action'а...
Если сделать

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

<?= Url::to(['qwe-update', 'id' => 123])?>
будет:

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

/user/qwe-update?id=123
А если сделать

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

<?= Url::to(['update', 'id' => 123])?>
будет:

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

/user/update/123
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Url

Сообщение Nex-Otaku »

В чём вопрос-то?
Аватара пользователя
zabachok
Сообщения: 522
Зарегистрирован: 2013.12.16, 14:38

Re: Url

Сообщение zabachok »

\w не включает символ минуса. Хотите символ минуса делайте [\w\-]+

Тут больше примеров:
http://php.net/manual/ru/reference.pcre ... syntax.php
2b||!2b Just read the instructions
Auramel
Сообщения: 80
Зарегистрирован: 2017.11.17, 14:39
Откуда: Russia, Ufa
Контактная информация:

Re: Url

Сообщение Auramel »

zabachok писал(а): 2018.03.06, 16:43 \w не включает символ минуса. Хотите символ минуса делайте [\w\-]+

Тут больше примеров:
http://php.net/manual/ru/reference.pcre ... syntax.php
Выручили :) Спасибо.
Ответить