【发布时间】:2019-03-17 01:18:02
【问题描述】:
我一直在尝试在十月 CMS 的插件中创建一个中间件,该中间件从输入中获取一个值并将其存储在会话中以定期显示在模板中。
中间件功能:
public function handle($request, Closure $next)
{
session()->put('foo', input('foo'));
logger('StartSession: foo: ', [session('foo')]);
return $next($request);
}
在plugin.php中注册中间件
public function register()
{
$this->app->make('Illuminate\Contracts\Http\Kernel')->prependMiddleware('October\Demo\Middleware\StartSession');
}
插件中访问会话的方法
public function registerMarkupTags()
{
return [
'functions' => [
'session' => [Session::class, 'get']
]
];
}
在演示主题中的使用
<h1>{{ session('foo') }}</h1>
这在第一次运行时有效。如果我把 foo 作为查询字符串 foo 显示在页面上。但是,在第二次运行时,如果我将查询字符串更改为 bar,则 foo 会保留在页面上。
这是一个新安装的十月实例中的问题示例
【问题讨论】:
标签: php laravel octobercms