如何检查用户名和密码匹配 laravel 7
How to check username and password match laravel 7
我正在使用 laravel 创建简单的登录表单 7.i 想检查用户名和密码 match.it 是否匹配重定向主页。如果它没有再次重定向登录页面,则显示错误用户名或密码不匹配。我尝试了下面的代码我得到了错误 Call to undefined method App\User::attempt()
登录控制器。
public function check(Request $request)
{
$uname = $request->uname;
$password = $request->password;
$user = User::where('uname',$a)->get()->last();
$pass = User::where('password',$b)->get()->last();
if (User::attempt(array('uname' => $uname , 'password' => $password ))){
return "success";
}
else {
return "Wrong Credentials";
}
}
查看登录
@extends('layout')
@section('content')
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Login</h2>
</div>
<div class="pull-right">
</div>
</div>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="row">
<form action="{{ route('login.check') }}" method="POST">
@csrf
<div class="col-sm-4">
<div class="left">
<strong>UserName</strong>
<input type="text" name="uname" class="form-control" placeholder="UName">
</div>
<div class="left">
<strong>Password</strong>
<input type="password" class="form-control" name="password" placeholder="Password"></textarea>
</div>
</br>
<div class="left">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
型号用户
protected $fillable = [
'name', 'email', 'password',
];
您需要将 User::attempt
替换为 auth()->attempt
另一件事你不需要手动检查 uname
和 passowrd
laravel 在 attempt
方法中为你做这件事所以如果
你删除那两行
$user = User::where('uname',$a)->get()->last();
$pass = User::where('password',$b)->get()->last();
最后,取决于你的 User
型号你有 name
而不是 uname
所以你需要像这样更新它
if (auth()->attempt(array('name' => $uname , 'password' => $password ))){
return "success";
} else {
return "Wrong Credentials";
}
我正在使用 laravel 创建简单的登录表单 7.i 想检查用户名和密码 match.it 是否匹配重定向主页。如果它没有再次重定向登录页面,则显示错误用户名或密码不匹配。我尝试了下面的代码我得到了错误 Call to undefined method App\User::attempt()
登录控制器。
public function check(Request $request)
{
$uname = $request->uname;
$password = $request->password;
$user = User::where('uname',$a)->get()->last();
$pass = User::where('password',$b)->get()->last();
if (User::attempt(array('uname' => $uname , 'password' => $password ))){
return "success";
}
else {
return "Wrong Credentials";
}
}
查看登录
@extends('layout')
@section('content')
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Login</h2>
</div>
<div class="pull-right">
</div>
</div>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="row">
<form action="{{ route('login.check') }}" method="POST">
@csrf
<div class="col-sm-4">
<div class="left">
<strong>UserName</strong>
<input type="text" name="uname" class="form-control" placeholder="UName">
</div>
<div class="left">
<strong>Password</strong>
<input type="password" class="form-control" name="password" placeholder="Password"></textarea>
</div>
</br>
<div class="left">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
型号用户
protected $fillable = [
'name', 'email', 'password',
];
您需要将 User::attempt
替换为 auth()->attempt
另一件事你不需要手动检查 uname
和 passowrd
laravel 在 attempt
方法中为你做这件事所以如果
你删除那两行
$user = User::where('uname',$a)->get()->last();
$pass = User::where('password',$b)->get()->last();
最后,取决于你的 User
型号你有 name
而不是 uname
所以你需要像这样更新它
if (auth()->attempt(array('name' => $uname , 'password' => $password ))){
return "success";
} else {
return "Wrong Credentials";
}