【问题标题】:Session data not saved in plugin controller October CMS会话数据未保存在插件控制器十月 CMS 中
【发布时间】:2020-06-05 00:07:20
【问题描述】:

在 10 月 CMS 的下一个请求中,会话不包含先前设置的数据。

我所做的是:
我正在尝试在 10 月 CMS 中使用插件控制器的操作方法将数据放入会话中。

\Session::put('name', 'Test Name');
\Session::keep(['name']);
var_dump(\Session::get('name'));

之后我重定向到我的应用程序的特定页面

return \Redirect::to('/created');

在此页面中加载了一个组件,该组件应该显示数据。 但是,当我尝试访问此组件后端的会话数据时

var_dump(\Session::get('name')); echo '<br>';

会话根本不包含我之前放置的数据。

我已经

  1. 检查'/storage/framework/sessions'文件夹是否可写。
  2. 会话是否已开始。
  3. 检查控制器动作和下一页(组件)之间是否没有其他请求。
  4. 设置更长的会话生命周期。
  5. 检查它是否是“正确的”会话,因为它包含中间件设置的数据。
  6. 还尝试同时添加 Flash 消息:
session()->flash("message", "Registered successfully");

\Flash::success('Settings successfully saved!');

return \Redirect::to('/created')->with('message', 'Registered successfully');

我的控制器类位于以下文件夹结构中: Plugin controller

动作方法如下:

  public function create(\HttpRequest $request)
  {
    // When robot
    if($request->input("recaptcha") != "success") {
      // Sets a successful message
      session()->flash("message", "Registered successfully");
      session()->flash("status", "Success");
      session()->flash("alert-class", "alert-success");
      \Session::put('name', 'Test Name');
    }
    return \Redirect::to('/created');
  }

有人可以帮忙吗?

【问题讨论】:

  • 你能用代码分享你的action method of a plugin controller的信息吗:)
  • @HardikSatasiya 我添加了插件控制器文件夹结构和具体控制器动作方法。
  • @HardikSatasiya 我觉得我的(闪存)会话有些问题,因为当使用return \Redirect::back()-&gt;withInput($request-&gt;all()); 返回时,我也无法使用value="{{ form_value('fname') }}" 请求旧的输入数据

标签: laravel session flash request octobercms


【解决方案1】:

我知道这个回复迟了,但我遇到了完全相同的问题,经过多次尝试,我发现了问题所在。您必须在 web 中间件中对路由进行分组,如下所示:

Route::group(['middleware' => ['web']], function () {
    // your routes here
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2017-06-10
    • 2017-06-24
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多