【问题标题】:PHP Slim framework - multiple HTTP methodsPHP Slim 框架 - 多种 HTTP 方法
【发布时间】:2012-03-21 13:33:15
【问题描述】:

我正在尝试路由多个 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
});

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

【问题讨论】:

    标签: php frameworks routes slim


    【解决方案1】:

    如果您不希望 Slim 忽略发布路线,则需要在通用地图路线中使用“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

    【讨论】:

      【解决方案2】:

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

      if ( $app->request()->isPost() ){
      echo 'Post request';
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-12
        • 1970-01-01
        • 1970-01-01
        • 2011-10-12
        • 2017-07-23
        • 1970-01-01
        • 2016-06-01
        相关资源
        最近更新 更多