如何在重定向之后重定向和存储请求的数据

编程入门 行业动态 更新时间:2024-10-12 12:26:05
本文介绍了如何在重定向之后重定向和存储请求的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试将用户重定向到登录页,但出现错误和闪烁消息。

目前我正在执行以下操作:

return $this->container->view->render($response,'admin/partials/login.twig',['errorss'=>$errors]);

但我想重定向到登录页面,同时仍然有错误消息和闪烁消息。我尝试了这种方法,但不起作用:

$this->container->flash->addMessage('fail',"Please preview the errors and login again."); return $response->withRedirect($this->container->router->pathFor('admin.login',['errors'=>$errors])); 推荐答案

您已经使用了slim/flash,但随后您执行了以下操作:

return $response->withRedirect($this->container->router->pathFor('admin.login',['errors'=>$errors]));

这是不正确的。Router#pathFor()方法上的第二个参数不是用于重定向后使用的数据

路由器的pathFor()方法接受两个参数:

  • 路由名称
  • 路由模式占位符和替换值的关联数组
  • 来源(www.slimframework/docs/objects/router.html)

    因此您可以使用第二个参数设置类似profile/{name}的占位符。

    现在您需要将所有错误添加到slim/flash`中。

    我在修改后的Usage Guide of slim/flash

    上解释了这一点 // can be 'get', 'post' or any other method $app->get('/foo', function ($req, $res, $args) { // do something to get errors $errors = ['first error', 'second error']; // store messages for next request foreach($errors as $error) { $this->flash->addMessage('error', $error); } // Redirect return $res->withStatus(302)->withHeader('Location', $this->router->pathFor('bar')); }); $app->get('/bar', function ($request, $response, $args) { // Get flash messages from previous request $errors = $this->flash->getMessage('error'); // $errors is now ['first error', 'second error'] // render view $this->view->render($response, 'admin/partials/login.twig', ['errors' => $errors]); })->setName('bar');

    更多推荐

    如何在重定向之后重定向和存储请求的数据

    本文发布于:2023-07-14 20:04:21,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1106705.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:重定向   数据   如何在

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!