我已经创建了一个登录页面'admin-login',在进行身份验证时会重定向到页面'admin'。我想在“管理员”页面上显示登录用户的名称。
看看我的代码: 控制器:
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!!"]);
}
}
我不知道在这里写什么'((''name'=>“”]);'。 Plz帮助我。
查看:
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@guest
<li><a href="{{ route('login') }}">Login</a></li>
<li><a href="{{ route('register') }}">Register</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true">
{{ Session::get('name') }} <span class="caret"></span>
</a>
</li>
</ul>
答案 0 :(得分:2)
您可以通过Auth::user()
他的名字就像
Auth::user()->name
;
答案 1 :(得分:1)
尝试使用以下代码:
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!!"]);
}
}
答案 2 :(得分:0)
如果您使用laravel默认身份验证模型,则只需使用 {{Auth :: user() - &gt; name}} ,它将打印logedin用户的名称。
答案 3 :(得分:0)
尝试在控制器中使用它:
return view('admin', ['name' => $checkLogin]);
然后在视图中,您需要创建一个foreach循环:
@foreach($checkLogin as $key => $value)
<p> {{ $value->email }} </p>
<p> {{ $value->name }} </p>
@endforeach
此外,如果您使用laravel的默认身份验证:
,则可以使用此功能{{ Auth::user()->name }}
答案 4 :(得分:0)
在我的情况下,我使用了身份验证登录命令来使laravel框架执行登录系统。 您以
登录: {{ Auth::user()->name }}</div>
答案 5 :(得分:-1)
您已经说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:
在请求之间共享session(['user' => $admin]);
而不是@auth
:
if (session('user'))
而不是@guest
:
if (empty(session('user')))
并显示管理员名称:
{{ session('user')->name }}
如果您还想在没有用户时避免错误,请使用optional()
帮助程序:
{{ optional(session('user'))->name }}
如果用户经过身份验证,则会打印一个名称,如果不是,则会打印任何内容。
我真的建议您使用brcypt()
帮助程序散列密码,并为所有用户使用一个表,并将角色分配给用户。在这种情况下,您将能够使用内置的身份验证系统,用户的凭据将是安全的。