【发布时间】:2017-08-30 13:27:38
【问题描述】:
我正在尝试在 Laravel 的负载基础控制器上存储一些数据,我使用 constructor 来执行此操作,并且构造函数成功执行。但是,当我在会话中存储值,然后下次刷新页面时,相同的会话值显示为空:
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use App\Language;
use Session;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
function __construct()
{
if(Session::get('phrase') == null)
{
Session::put('phrase','test');
dump(Session::get('phrase'));
}
}
}
访问方式:
class DashboardController extends Controller
{
public function index()
{
if(!in_array(Auth::user()->role_id,[1,2])){
return redirect()->route('orsers.list',['filters'=>'']);
}
return view('dashboard.index');
}
我不明白我哪里错了??
【问题讨论】:
-
您确定您没有清除某处的值吗?像
Session::pull代码中的任何地方?您是否在refresh进程中切换中间件(或在您设置/读取会话之后)?你真的可以将会话值存储在驱动器上吗?也许您对会话存储文件夹具有只读权限? -
no.. 我正在运行仪表板控制器索引功能,这里是它的代码...(检查更新的问题)
-
DashboardController构造函数中的行为相同 -
也许this 可以提供帮助,否则,测试范围太广,无法进一步评论。
-
先生,我得到了答案
we can't access the session or authenticated user in your controller's constructor because the middleware has not run yet.
标签: php laravel session laravel-5.3