Laravel 5.6会话不会重定向到查看

问题描述 投票:1回答:1

我正在使用Laravel 5.6并面临一些问题。如果在数据库匹配中找到emailpassword然后重定向,我想验证用户。如果用户存在,则重定向到"user1",否则重定向到"/":还附加了迁移文件

路线

Route::any('/user1','UserProfile@store');
Route::get('/login','StudentController@index');

调节器

public function store(Request $request)
{
    $info = array(
        "Email" => $request->get("email"),
        "password" => $request->get("password")
    );

    $info = DB::table("students")->where($info)->first();

    if(!$info){
        $data = array(
            "user_email" => $info->Email,
            "user_password" => $info->password,
            "user_id" => $info->Student_id
        );

        $request->session()->put($data);
        $request->session()->get('user_email');

        //echo $val=$request->session()->get('user_id');die;
        //  print_r($data);die;

        return redirect('/user1');
    } else {
        return redirect('/');
    }
}

迁移

   public function up()
{
    Schema::create('students', function (Blueprint $table) {

        $table->string('Name');
        $table->string('Student_id');
        $table->string('Email');
        $table->string('Department');
        $table->string('Gender');
        $table->string('password');

        $table->timestamps();
    });
}

This Is Picture of Database Table Students

php laravel laravel-5.6
1个回答
0
投票

if(!$info)是倒退的逻辑;你试图从$data创建null->first()将返回一个stdClass对象或null,取决于它找到的内容,并且该代码只有在$infonull时才会执行)。

它应该是

if($info){
    $data = array(
        "user_email" => $info->Email,
        "user_password" => $info->password,
        "user_id" => $info->Student_id
    );

    $request->session()->put($data);
    $request->session()->get('user_email');

    return redirect('/user1');
} else {
    return redirect('/');
}
© www.soinside.com 2019 - 2024. All rights reserved.