SlimFramework php 404 проблема с пользовательскими многоязычными группами

1

Я попытался сделать свое собственное многоязычное приложение, используя slim framework. Я создал группы маршрутов для всех языков, которые содержат все стандартные маршруты приложений следующим образом:

$this->app->group($base_folder, function () use ( $base_folder ) {

    include 'includes.php';

    $availableLangs = explode(",", USE_MULTILINGUAGES);
    if(strlen($availableLangs['0']) > 0){
        foreach($availableLangs as $availableLang) {

            $this->app->group('/'.$availableLang, function () {
                include 'includes.php';
            });

        }
    }
});

Мой файл include.php содержит мои стандартные маршруты:

//Redirect to Home
$this->app->map('/', function () {
    echo '/'.'<br/>';
    $this->app->redirect('home');
})->via('GET');

//Homepage
$this->app->map('/home', function () {
    $data = new Admin\GetController( 'home' );
    $data->send("Home/home.template.html");
})->via('GET');

//Others
require 'Routes/Login.php';
require 'Routes/Logout.php';
require 'Routes/Users.php';

Созданные маршруты хороши, когда я показываю его:

project/
project/en
project/fr
project/home
project/en/home
project/fr/home

и т.д...

Но когда я пытаюсь в браузере, работают только стандартные (проект/проект/дом). Пользовательский $this->app->notFound с /fr или /en переходит к $this->app->notFound

  • Почему он не работает?
  • Есть ли лучший способ сделать это...?
Теги:
routing
slim

1 ответ

0
Лучший ответ

Я переписывал переменную Slim ['PATH_INFO'] при извлечении lang из url. Вот почему он не работал. Так что теперь все хорошо, но мне все же интересно узнать, есть ли лучший способ добавить многоязычное приложение в тонкое приложение.

Полезные ресурсы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню