Dynamic 以用户一致性创建路由

Dynamic 以用户一致性创建路由,dynamic,routes,silex,Dynamic,Routes,Silex,我需要创建一个带有主页的小应用程序,用户可以在其中使用唯一字段填写表单。该字段将用作文件室的名称,用户将重定向到此页面。输入相同房间名称的所有其他用户都将被重定向到同一页面,并能够与该房间中的用户聊天 我的问题是,我找不到一种方法与silex 2使这项工作 我创建了主页,它看起来很有效。我有一张表格,可以输入房间的名称: $app->match( '/', function (Request $request) use ($app) { $data = array(

我需要创建一个带有主页的小应用程序,用户可以在其中使用唯一字段填写表单。该字段将用作文件室的名称,用户将重定向到此页面。输入相同房间名称的所有其他用户都将被重定向到同一页面,并能够与该房间中的用户聊天

我的问题是,我找不到一种方法与silex 2使这项工作

我创建了主页,它看起来很有效。我有一张表格,可以输入房间的名称:

$app->match(
'/',
function (Request $request) use ($app) {
    $data = array(
        'room' => 'Name of the room',
    );

    $form = $app['form.factory']->createBuilder(FormType::class, $data)
        ->add('room', TextType::class)
        ->getForm();

    $form->handleRequest($request);

    if ($form->isValid()) {
        $data = $form->getData();
        $roomName = $data['room'];

        //return $app->redirect('/room/' . $roomName);
        $subRequest = Request::create($app['url_generator']->generate('/room/' . $roomName), 'GET');

        return $app->handle($subRequest, \Symfony\Component\HttpKernel\HttpKernelInterface::SUB_REQUEST, false);
    }

    return $app['twig']->render('base.twig', array('form' => $form->createView()));
}
)->bind('home');
如您所见,我尝试了重定向和子请求。 但这两种情况都不起作用,因为我收到了404

预计到达房间的代码是:

$app->match(
'/room/{name}',
function ($name) use ($app) {
    return $app['twig']->render('room.twig', array('name' => $name));
}
)->bind('room');
有没有人知道我如何才能做到这一点


谢谢你的阅读。任何帮助都将不胜感激。

我终于找到了解决方案

我必须在我的web文件夹中添加一个.htaccess文件。该文件的重要部分是,对于任何有相同问题的人:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
</IfModule>

选项-多视图
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^index.php[L]

我终于找到了解决办法

我必须在我的web文件夹中添加一个.htaccess文件。该文件的重要部分是,对于任何有相同问题的人:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
</IfModule>

选项-多视图
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^index.php[L]