PHP Slim 框架 - 多种 HTTP 方法

标签 php frameworks routes slim

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

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

最佳答案

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

关于PHP Slim 框架 - 多种 HTTP 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9805682/

相关文章:

PHP实时查看exec状态,可能吗?

c++ - C++中的动态库,插件框架和函数指针转换

java - Camel 聚合器完成大小与相关表达式?

grails - 默认情况下如何使Grails 3使用复数路由

ruby-on-rails - Rails 3 给出 URL 中的点的路由错误

php - 将按钮点击次数限制为每 5 分钟一次

php - 如何在 Laravel 中对多个列使用相同的类别 id?

php - 使用 codeigniter 备份数据库,未添加引号来插入值(语法错误)

java - 如何在项目中应用Framework?

ios - Xcode:找不到框架头文件 - 每次新启动后