PHP Slim框架 - 多种HTTP方法

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

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

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

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

$ app-&gt; post(' / admin / register',function()use($ app){
//验证寄存器信息
});
</ code> </ pre>

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

展开原文

原文

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个回答



如果你不希望Slim忽略帖子路线,你需要在你的通用地图中使用'pass'助手 路线,如下:</ p>

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

$ app-&gt; post('/ admin / register',function()use($ app){
//验证注册信息
} );
</ code> </ pre>

以下是关于它的文档: http://www.slimframework.com/documentation/develop#routing-helpers-pass </ p>
</ div>

展开原文

原文

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



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

< pre> if($ app-&gt; request() - &gt; isPost()){
echo'Post request';
}
</ code> </ pre>
</ div>

展开原文

原文

You need to modify first function, add following code in it to detect post/get methods:

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐