SlimFramework php 404问题与自定义multilang组

时间:2015-11-18 16:36:08

标签: php routing slim

我尝试使用slim框架创建自己的multilang应用程序。我为包含所有标准应用程序路径的所有语言生成了路由组,如下所示:

$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

等...

但是当我在浏览器中尝试它时,只有标准的工作(项目/和项目/家庭)。使用/ fr或/ en的自定义转到$this->app->notFound

  • 为什么不工作?
  • 有没有更好的方法呢??

1 个答案:

答案 0 :(得分:0)

从url中提取lang时,我正在重写Slim变量['PATH_INFO']。这就是它无法正常工作的原因。所以它现在工作正常,但我仍然有兴趣知道是否有更好的方法将multilang添加到一个苗条的应用程序。

有用的资源