我最近设置会话以保存到数据库并在sessions表中添加了user_id字段,以便我可以显示登录用户的名称.为了让laravel在用户登录时保存用户的id(给定laravel不定期查找user_id列),我不得不在Authenticate.php文件中添加一些代码来处理它.
现在,我正在尝试将user_id字段设置为null当用户注销时,因为目前,因为user_id字段即使在他们注销后仍然包含用户的id,所以即使他们不再登录,它仍然会在登录时显示它们.我希望扩展auth/logout功能,而不实际触及供应商文件,以包括我的功能,以便在注销时将user_id设置为null.
我可以在哪里添加此功能?在AuthController.php文件中?在routes.php中添加我自己的auth/logout路由声明?
如果您对我有任何疑问或需要我更好地解释一下,请告诉我.
谢谢.
我试图使用ajax请求来保存会话变量,该变量用于禁用我的网站的背景图像.到目前为止,如果我只是去路线本身就可以工作,但是,如果我通过ajax请求运行该函数,它完全失败并且不会将值保存到会话,即使它在dd(Session::all())右后方显示它.
<?php namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Session;
use Request;
use App;
use Response;
class SessionVarController extends Controller {
public function backgroundImgsOff()
{
if(Request::ajax())
{
Session::put(['backgroundImgDisable' => true]);
return Response::json();
}
else
{
App::abort(404, 'Page not found.');
}
}
public function backgroundImgsOn()
{
if(Request::ajax())
{
Session::forget(['backgroundImgDisable']);
return Response::json();
}
else
{
App::abort(404, 'Page not found.');
}
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么这似乎拒绝实际保存会话变量?我在某处看到它可能与会话状态有关,但是,我找不到一个解决方案的提示.
编辑:这是我的ajax(请记住这是我第一次尝试ajax).
function enableBackgroundImages() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest(); …Run Code Online (Sandbox Code Playgroud)