我只是在Laravel 5中创建一个简单的登录页面 . 问题:成功登录后,我必须创建一个电子邮件地址会话并转到仪表板 . 如果未创建会话而不是移动到登录页面 .
这是我的控制器功能代码:
public function admin_auth()
{
$matchThese = ['email' => $_POST['email'], 'password' => $_POST['password']];
$login['result'] = DB::table('login_auth')->where($matchThese)->get();
if($login['result'])
{
//session_start();
date_default_timezone_set('Asia/Kolkata');
$_SESSION['session_email'] = $_POST['email'];
Session::put('session_email', $_POST['email']);
if (Session::has('session_email'))
{
echo 'Done';
}else echo 'Session Not Created';
}else echo 'Email Or Password Not Match';
}
在上面的函数中,我得到了'Done' . 这意味着会话被创建但是当我在同一个控制器的其他方法中检查相同的变量时,则没有设置会话 .
这是我的另一个功能:
public function dashboard()
{
if (Session::has('session_email'))
{
return view('login.dashboard');
}else echo 'Session Not Created';
}
我总是得到'Session Not Created' .
感谢advancd的帮助 .
1 回答
假设您使用的是5.2版
您应该在名为
web
的middleware组中使用会话包含所有路由,该组在Namespace\Http\Kernel
中定义$middlewareGroups