Php LARAVEL-登录时显示用户的名称
我已经做了一个登录页面'管理员登录',它重定向到一个页面'管理员'认证时。我想在“管理员”页面上显示登录用户的姓名 看看我的代码: 控制器:Php LARAVEL-登录时显示用户的名称,php,laravel,laravel-5,Php,Laravel,Laravel 5,我已经做了一个登录页面'管理员登录',它重定向到一个页面'管理员'认证时。我想在“管理员”页面上显示登录用户的姓名 看看我的代码: 控制器: public function login(Request $req) { $email = $req->input('email'); $password = $req->input('password'); $checkLogin = DB::table('admin')->where(['email'=&g
public function login(Request $req) {
$email = $req->input('email');
$password = $req->input('password');
$checkLogin = DB::table('admin')->where(['email'=>$email,'password'=>$password])->get();
if(count($checkLogin) > 0) {
return view('admin')->with(['name'=>" "]);
}
else {
// echo "Login Failed!";
return Redirect::route('admin-login')->with(['error'=> "Invalid email or Password!!"]);
}
}
return view('admin', ['name' => $checkLogin]);
我不知道在这里用(['name'=>“”]);'写什么。请帮帮我
视图:
@客人
@否则
-
您说过Auth::user()->name
对您不起作用,也就是说您保留了原样的密码,而没有对其进行哈希运算。而且,看起来您正在使用多个表来存储用户。在这种情况下,Auth::check()
、@guest
、@Auth
和其他指令将不适用于您
您需要添加新的防护,修改一些Laravel代码并手动登录用户。但由于您是Laravel的新手,我认为对您来说,更简单的解决方案是手动检查用户:
$admin = DB::table('admin')->where(['email' => $email, 'password' => $password])->first();
if (empty($admin)) {
return redirect()->route('admin-login')->with('error', 'Invalid email or Password!');
}
您还可以将变量传递给视图,并使用会话在请求之间共享变量:
session(['user' => $admin]);
这样做而不是@auth
:
if (session('user'))
而不是@guest
:
if (empty(session('user')))
并显示管理员姓名:
{{ session('user')->name }}
如果您还希望避免在没有用户时出错,请使用optional()
helper:
{{ optional(session('user'))->name }}
如果用户通过身份验证,它将打印一个名称;如果用户未通过身份验证,它将不打印任何内容
我真的建议您使用
brcypt()
helper散列密码,为所有用户使用一个表,只为用户分配角色。在这种情况下,您将能够使用内置的身份验证系统,并且用户的凭据将是安全的。您说过auth::user()->name
对您不起作用,这就是说您将密码保持原样,而不对其进行哈希运算。而且,看起来您正在使用多个表来存储用户。在这种情况下,Auth::check()
、@guest
、@Auth
和其他指令将不适用于您
您需要添加新的防护,修改一些Laravel代码并手动登录用户。但由于您是Laravel的新手,我认为对您来说,更简单的解决方案是手动检查用户:
$admin = DB::table('admin')->where(['email' => $email, 'password' => $password])->first();
if (empty($admin)) {
return redirect()->route('admin-login')->with('error', 'Invalid email or Password!');
}
您还可以将变量传递给视图,并使用会话在请求之间共享变量:
session(['user' => $admin]);
这样做而不是@auth
:
if (session('user'))
而不是@guest
:
if (empty(session('user')))
并显示管理员姓名:
{{ session('user')->name }}
如果您还希望避免在没有用户时出错,请使用optional()
helper:
{{ optional(session('user'))->name }}
如果用户通过身份验证,它将打印一个名称;如果用户未通过身份验证,它将不打印任何内容
我真的建议您使用
brcypt()
helper散列密码,为所有用户使用一个表,只为用户分配角色。在这种情况下,您将能够使用内置的身份验证系统,并且用户的凭据将是安全的。尝试使用以下代码:
public function login(Request $req) {
$email = $req->input('email');
$password = $req->input('password');
$checkLogin = DB::table('admin')->where(['email'=>$email,'password'=>$password])->first();
if(count($checkLogin) > 0) {
return view('admin')->with(['name'=>$checkLogin->name]);
}
else {
// echo "Login Failed!";
return Redirect::route('admin-login')->with(['error'=> "Invalid email or Password!!"]);
}
}
请尝试使用以下代码:
public function login(Request $req) {
$email = $req->input('email');
$password = $req->input('password');
$checkLogin = DB::table('admin')->where(['email'=>$email,'password'=>$password])->first();
if(count($checkLogin) > 0) {
return view('admin')->with(['name'=>$checkLogin->name]);
}
else {
// echo "Login Failed!";
return Redirect::route('admin-login')->with(['error'=> "Invalid email or Password!!"]);
}
}
您可以通过
Auth::user()
他的名字像
Auth::user()->name
您可以通过Auth::user()
他的名字像
Auth::user()->name
如果您使用laravel默认身份验证模型,您只需使用{{auth::user()->name}}它将打印登录用户的名称。如果您使用laravel默认身份验证模型,您只需使用{auth::user()->name}它将打印登录用户的名称。尝试在控制器中使用此选项:
public function login(Request $req) {
$email = $req->input('email');
$password = $req->input('password');
$checkLogin = DB::table('admin')->where(['email'=>$email,'password'=>$password])->get();
if(count($checkLogin) > 0) {
return view('admin')->with(['name'=>" "]);
}
else {
// echo "Login Failed!";
return Redirect::route('admin-login')->with(['error'=> "Invalid email or Password!!"]);
}
}
return view('admin', ['name' => $checkLogin]);
然后在视图中,需要创建foreach循环:
@foreach($checkLogin as $key => $value)
<p> {{ $value->email }} </p>
<p> {{ $value->name }} </p>
@endforeach
尝试在控制器中使用此选项:
public function login(Request $req) {
$email = $req->input('email');
$password = $req->input('password');
$checkLogin = DB::table('admin')->where(['email'=>$email,'password'=>$password])->get();
if(count($checkLogin) > 0) {
return view('admin')->with(['name'=>" "]);
}
else {
// echo "Login Failed!";
return Redirect::route('admin-login')->with(['error'=> "Invalid email or Password!!"]);
}
}
return view('admin', ['name' => $checkLogin]);
然后在视图中,需要创建foreach循环:
@foreach($checkLogin as $key => $value)
<p> {{ $value->email }} </p>
<p> {{ $value->name }} </p>
@endforeach
在我的例子中,我使用authenticationlogin命令使laravel框架执行登录系统。 您以以下身份登录:
{{Auth::user()->name}
在我的例子中,我使用authentication login命令使laravel框架执行登录系统。
您以以下身份登录:
{{Auth::user()->name}
它不工作。抛出错误-“此集合实例上不存在属性[name]。这里的$user是什么?@user9332352您可以添加($checkLogin)?它不起作用了。抛出错误-“此集合实例上不存在属性[name]。这里的$user是什么?@user9332352您可以添加($checkLogin)?我没有得到任何错误。但是没有显示用户名@来宾部分已执行。@user9332352如果对您有效,请告诉我。如果您使用默认方法注册用户,或者在创建新用户时使用bcrypt()
,我相信所有其他答案都不会起作用。@user9332352而且看起来您使用的是默认注册方法,因为您正在执行路由('register')
会话工作正常。问题在于查看页面中的“@guest else”标记。我需要使用一些if-else语句。我希望这能帮助您向我推荐解决方案。@user9332352但您已经说过,我以前的解决方案是auth()->user()->name
,不起作用。我的问题是,您是将密码存储在表中,类似于mypass145
还是$2y$10$UJitdozRrdn4JlcojBJgh.A.DRfjTr8Bv30uZRDR.iEJA5s1Q0od6
。请检查这个。我没有收到任何错误。但是没有显示用户名@来宾部分已执行。@user9332352如果对您有效,请告诉我。如果您使用默认方法注册用户,或者在创建新用户时使用bcrypt()
,我相信所有其他答案都不会起作用。@user9332352而且看起来您使用的是默认注册方法,因为您正在执行路由('register')
会话工作正常。问题在于查看页面中的“@guest else”标记。我需要使用一些if-else语句。我希望这能对你的建议有所帮助