Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
В классе валидации alpha и другие подобные типы валидируют только латинский алфавит. Править исходники движка не хочется, есть ли какой-нибудь бандл для этого?
Проблему решил таким образом (вдруг кому понадобится):
Скачал как zip вот отсюда последнюю версию HTTPFoundation Symfony
https://github.com/symfony/HttpFoundation
Распаковал в [project]/laravel/vendors/Components/HTTPFoundation-master
Переименовал старый в **-old а новый в имя без -master
Скопировал два файла из старого: LaravelRequest.php и LaravelResponse.php
Вуаля, url-кодированные запросы работают "из коробки" без костылей.
Вот ведь лол. Поискал по англоязычному форуму, это ошибка в HTTPFoundation от Smarty
http://forums.laravel.io/viewtopic.php?pid=21332#p21332
Однако, они эту ошибку уже исправили, а Laravel содержит устаревшую реализацию. Печально.
}%С первого взгляда ничего в глаза не бросается. Попробуй в %%router.php%% в метод %%match()%% подставить %%(php)var_dump($pattern);%% и т.п. и посмотреть, что с чем сравнивается и почему не совпадает.
Я xdebug-ом только что туда глянул, в общём, там URL становится /pages/by_tag/русскийтекст вместо %D0%FE и прочих процентов. Возможно, я что-то неправильно делаю при генерации ссылки. Смотрю в исходную страницу, где нажимаю ссылку, там значится то, что я написал в первом постинге (в href параметр с %-нтами), при нажатии Google Chrome генерит запрос с русскоязычным текстом, который под приведённую регулярку уже не подходит. Что-то тут не так.
UPD
Смотрю заголовки, Хром отправляет всё верно. Значит и генерю всё верно, и проблема где-то в Laravel
Вот заголовок запроса
Request URL:http://***.local/pages/by_tag/%D0%B2%D0%B0%D1%80%D0%B5%D0%BD%D1%8C%D0%B5
Решил проблему пока так, но мне не нравится этот вариант, это не DRY
Route::get('/pages/by_tag/(:all)', 'pages@by_tag');
Мой роутинг простой, это была одна из двух причин по выбору Laravel вместо Symfony -
Route::controller(Controller::detect());
Такой роутинг не понимает строки
/pages/by_tag/%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BB%D0%BE%D0%BC%D0%BA%D0%B0
Зато понимает
/pages/by_tag/blahblah
Порыскав в исходниках, подозреваю, что в вышеупомянутом случае они подставляют шаблон control/action/(:any?)/(:any?) и т.д., который резолвится в
(?:/([a-zA-Z0-9\.\-_%=]+)
Но он почему-то выкидывает меня на роутинг 404 (который :all) — что делать?