duanguanzai6181 2012-03-21 13:33
浏览 89
已采纳

PHP Slim框架 - 多种HTTP方法

I am trying to route multiple HTTP methods (GET and POST) to display the same content. For instance, I have a register page:

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

This will display the register form upon GET and POST requests. I then want to specify 'extra stuff' to happen on 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
});

However, the second function is being ignored. I want to do this so that I can then display error messages above the register form. How would I go about achieving this?

  • 写回答

2条回答

  • dswwuo1223 2012-04-28 04:47
    关注

    If you don't want the post route to be ignored by Slim, you need to use the 'pass' helper in your generic map route, like so:

    $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
    });
    

    Here's the documentation on it: http://www.slimframework.com/documentation/develop#routing-helpers-pass

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 simulink中怎么使用solve函数?
  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题