Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Почему не работает такой роут?
Route::get('/(:all)', array('uses'=>'static@index'));
class Static_Controller extends Base_Controller {
public function action_index($slug)
{
return "Static page. Slug = " . $slug;
}
}
Такой работает, но тогда в пути будет присутствовать static
Route::get('static/(:all)', array('uses'=>'static@index'));
Т.е. на сайте может быть много обычных страниц, которые будут доступны по адресам
http://mysite/any-slug-1
http://mysite/any-slug-2
...
http://mysite/any-slug-n
Не в сети
Не в сети
Это я читал (URL не должен начинаться со слэша)
Так а что делать?
Как-то выходит столько всего можно и так и так, а каков прицип - не понятно.
Не в сети
В общем элементарную весчь я так и не понял как сделать. Как выставить контроллер или роут по умолчанию
И как вообще получить информацию отладки. Поставил 'log' => true, - ничего не пишет в лог
Выдает 404 - это классно, а как посмотреть в чем проблема, я понимаю что роут не срабатывает. 404 - это для пользователя
Да и вообще интересно, на одном и том же адресе http://mysite/xxx выдает 404 -
раз показывает - We need a map.
другой - We took a wrong turn.
третий - I think we're lost.
как это так?)
Не в сети
Странно сработал этот роут
Route::get('(:any)', array('uses'=>'static@index'));
Хотя я его писал ранее почти самый первый раз, когда пробовал. Может где-то закешировало.
Не в сети
}%> %%'/(:all)'%%
URL не должен начинаться со слэша, если только это не коречь (просто %%'/'%%). Для примера можешь открыть %%laravel\laravel.php%% и посмотреть, как там определён "catch-all"-маршрут 404.
Как это роут не может начинаться со слеша laravel\routing\router.php:213
И из примера это также понятно Router::register(array('GET', '/', 'GET /home'), function() {return 'Home!';});
Не в сети
- Как это роут не может начинаться со слеша
В документации написано, что URL / — единственный случай, когда нужно использовать слэш. Собственно, если ты передашь в register() пустую строку, то она будет установлена в /:
$uri = ltrim(str_replace('(:bundle)', static::$bundle, $uri), '/');
if($uri == '')
{
$uri = '/';
}
Другое дело, что ведущие / в любом случае отсекаются и маршрут будет работать даже если определён как /home. А вот слэши в конце его поломают.
Не в сети
В конце, да, тут я с тобой согласен))) Кстати с праздником)
Не в сети
Страницы 1