在用户方便时创建路线
Create route at user conveniance
我需要创建一个带有主页的小型应用程序,用户可以在其中填写具有唯一字段的表单。该字段将用作房间的名称,并将用户重定向到此页面。输入相同房间名称的所有其他用户都将被重定向到同一页面,并且能够与该房间中的用户聊天。
我的问题是我找不到使用 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');
有没有人知道我如何才能完成这项工作?
感谢您的阅读。任何帮助将不胜感激。
我终于找到了解决方案。
我不得不在我的网络文件夹中添加一个 .htaccess 文件。对于遇到同样问题的任何人,此文件的重要部分是:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>
我需要创建一个带有主页的小型应用程序,用户可以在其中填写具有唯一字段的表单。该字段将用作房间的名称,并将用户重定向到此页面。输入相同房间名称的所有其他用户都将被重定向到同一页面,并且能够与该房间中的用户聊天。
我的问题是我找不到使用 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');
有没有人知道我如何才能完成这项工作?
感谢您的阅读。任何帮助将不胜感激。
我终于找到了解决方案。
我不得不在我的网络文件夹中添加一个 .htaccess 文件。对于遇到同样问题的任何人,此文件的重要部分是:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>