1

我正在尝试路由多个 HTTP 方法(GET 和 POST)来显示相同​​的内容。例如,我有一个注册页面:

$app->map('/admin/register', function () use ($app) {
    $app->render('/admin/register.twig');
})->via('GET', 'POST');

这将在 GET 和 POST 请求时显示注册表单。然后我想指定在 POST 上发生的“额外的东西”。

$app->map('/admin/register', function () use ($app) {
    $app->render('/admin/register.twig');
})->via('GET', 'POST');

$app->post('/admin/register', function () use ($app) {
    // Validate register information
});

但是,第二个功能被忽略了。我想这样做,以便我可以在注册表上方显示错误消息。我将如何实现这一目标?

4

2 回答 2

2

您需要修改第一个函数,在其中添加以下代码以检测 post/get 方法:

if ( $app->request()->isPost() ){
echo 'Post request';
}
于 2012-03-22T11:31:17.143 回答
2

如果您不希望 Slim 忽略 post 路线,则需要在通用地图路线中使用“pass”助手,如下所示:

$app->map('/admin/register', function () use ($app) {
    if($app->request()->isPost()) {
       $app->pass();
    }
    $app->render('/admin/register.twig');
})->via('GET', 'POST');

$app->post('/admin/register', function () use ($app) {
    // Validate register information
});

这是关于它的文档:http ://www.slimframework.com/documentation/develop#routing-helpers-pass

于 2012-04-28T04:47:28.800 回答