2017-03-06 4 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> 
関連する問題