首页 > 解决方案 > 我有一个学生表,里面有一些数据。我只使用两个字段作为登录电子邮件 ID 和密码。拉拉维尔

问题描述

在此处输入图像描述 路线

Route::get('/','StudentController@studentlogin')->name('index');

这是登录请求..我可以成功登录

public function login(Request $request){

    $email=$request->email;
    $password=$request->password;
    $students=Student::where('email','=',$email)
    ->where('password','=',$password)
    ->first();

    if($students){
        // Session::put('email',$request->email);
        // Session::put('id',$request->id);

        return redirect()->route('student.dashboard');
    }
    else{
        Session()->flash('success','Invalid Email & and password');
        return redirect()->route('index');
    }
}

这里没有问题。但是反应了我用来登录的单行数据(电子邮件和密码)。我怎样才能得到这个?不同页面上只有单行数据..请帮助我。

我想对此页面上的单列数据进行反应,此页面路由是

Route::get('/sudent/view','StudentController@studentview')->name('student.view');

标签: laravelroutes

解决方案


首先,请不要将密码作为纯文本存储在数据库中。这是一个巨大的安全问题。您应该首先对密码进行哈希处理并存储该哈希值。然后,当用户尝试登录时,您应该对他们提供的密码进行哈希处理,并与数据库中已有的密码进行比较。有关更多信息,请查看此处的身份验证文档

您应该使用 Student 视图实现我认为您想要的方式是使用Route Parameters。这些允许您在路由中拥有用户的 ID 并在控制器中访问它。

您的路线应如下所示:

Route::get('/student/{student}', 'StudentController@studentview')->name('student.view');

路径的{student}部分应替换为您在访问该站点时要查看的学生的实际 ID。

然后你的控制器,视图方法应该是这样的:

public function studentview(Student $student) {
    // Your code here
}

该方法利用 Laravel 的服务容器根据路由参数中的 ID 自动注入正确的学生。这在此处进一步解释


推荐阅读