2017-03-06 43 views
1

我需要创建一个带有主页的小型应用程序,用户可以用唯一字段填写表单。该字段将用作房间的名称,并且用户重定向到此页面。输入相同房间名称的每个其他用户将被重定向到同一页面,并且可以与该房间中的用户聊天。在用户方便地创建路线

我的问题是,我无法找到一个与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'); 

有没有人对我怎么会做这项工作的想法?

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

回答

0

我终于找到了解决方案。

我不得不在我的web文件夹中添加一个.htaccess文件。这个文件的重要部分是这个,对于有同样问题的人:

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