Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel-访问API中的会话变量_Php_Api_Laravel 5_Session Variables - Fatal编程技术网

Php Laravel-访问API中的会话变量

Php Laravel-访问API中的会话变量,php,api,laravel-5,session-variables,Php,Api,Laravel 5,Session Variables,我有一个简单的应用程序,我想能够改变语言。 在我的主控制器中,我有: session(['applocale' => 'en']); $request->session()->put('applocale','en'); 我知道这两条线是相同的,但我想确定它们都不起作用 然后我有一个API方法: public function switchLang(Request $request, $lang) { error_log("Current language is: "

我有一个简单的应用程序,我想能够改变语言。 在我的主控制器中,我有:

session(['applocale' => 'en']);
$request->session()->put('applocale','en');
我知道这两条线是相同的,但我想确定它们都不起作用

然后我有一个API方法:

public function switchLang(Request $request, $lang)
{
    error_log("Current language is: " . session('applocale'));
    error_log("Current language is: " . $request->session()->get('applocale'));
}
这里错误日志没有显示任何内容

我遵循这个思路: 在Debugbar中,我可以看到我的API函数已经命中了中间件的“会话”,但会话变量并不存在

这就是我的“季节”中间件的外观:

'sessions' => [
    \Illuminate\Session\Middleware\StartSession::class,
]
它实际上同时影响了“api”和“会话”中间件

你知道我做错了什么吗?

这对我很有用(Laravel-5.7)

首先将
api
中间件组更改为-

'api' => [
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    'throttle:60,1',
    'bindings',
],
App\http\kernel.php


参考。

会话(['applocale'=>'en'])该控制器的属性还是方法?这是一个助手方法:我现在可以访问我的会话数据。也在拉威尔6号工作。谢谢:)