Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
написал код
$locale = Request::segment(1);
if (is_null($locale))
{
$locale="en";
}
print $locale;
Route::group(array('prefix' => $locale), function()
{
Route::get('/', function()
{
return View::make('index');
});
});
Когда набираю
http://localhost/ru/
http://localhost/en/
все работает, го без RU/EN -выдает ошибку!
добавил вручную назначить EN если пустая $locale - не помогло! в чем дело?
Переменная locale в вашем коде не может быть null.
Не в сети
Переменная locale в вашем коде не может быть null.
Почему же не может быть, при указании http://localhost эта переменная как раз пустая, и в if успешно присваивается EN
Но потом дебаггер пишет типа нет маршрута?!
Да, ошибся...
Изменено Wide (14.01.2015 22:18:49)
Не в сети
Какая конкретно ошибка?
Не в сети
Какая конкретно ошибка?
NotFoundHttpException
Причем EN присваивается этой переменной - я вижу ее в HTML коде дебаггера!
Сделал как здесь https://laravel.ru/posts/31
Все работает, только не могу понять как получить текущ язык, при любых адресах
http://localhost/en
http://localhost/ru
http://localhost/
функция print App::getLocale(); выдает RU?!
Хотя сайт переводится нормально!
Я делал следующим образом:
В конструкторе BaseController делаю вот так:
$languages = Config::get('app.languages');
if(!$languages){
$languages = array();
}
$locale = Request::segment(1);
if(in_array($locale, $languages)){
define("LOC", "/".$locale);
define("LNG", $locale);
}
else {
define("LOC", "");
define("LNG", 'en');
}
и потом где нужно - получаю либо язык, либо урл... слегка правда криво по ходу...
Не в сети
Страницы 1