我在laravel上有一个注册和登录系统,没有电子邮件验证。今天,我想使用以下指南添加电子邮件验证:https://mailtrap.io/blog/laravel-email-verification/完成所有操作后,我尝试注册一个用户,但出现了错误“传递到App\Http\Controllers\Auth\RegisterController::validator()的参数1必须是在第32行的/var/www/sinemori/vendor/laravel/ui/Auth backend/RegistersUsers.php中调用的light\Http\Request、给定数组的实例”我在谷歌上搜索了这个错误,大多数答案都是关于use\Http\Request的;我已经用过了。
在我的网上。我正在使用的php
Auth::routes(['verify' => true]);
Auth::routes();
申请/登记路线
这是我的注册控制器
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class RegisterController extends Controller
{
use RegistersUsers;
public function __construct()
{
$this->middleware('guest');
}
protected function validator(Request $request)
{
$this->validate($request, ['name' => 'required|string|min:2|max:255',
'surname' => 'required|string|min:2|max:255',
'email' => 'required|string|email|max:255|unique:users',
'username' => 'required|string|max:255|unique:users',
'password' => 'required|string|min:8|confirmed',
'password_confirmation' => 'required']);
}
public function store(Request $request){
$this->validator($request);
User::create([
'name' => $request->name,
'surname' => $request->surname,
'email' => $request->email,
'username' => $request->username,
'password' => Hash::make($request->password),
'profile_img' => "/images/users/default_profile_picture.png"
]);
return redirect()->intended('/login');
}
}
这是登记簿。刀身php
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="post" action="{{ route('register') }}">
@csrf
<div class="form-group">
<label>Name</label>
<input type="text" name="name" class="form-control p_input">
</div>
<div class="form-group">
<label>Surname</label>
<input type="text" name="surname" class="form-control p_input">
</div>
<div class="form-group">
<label>Email</label>
<input type="email" name="email" class="form-control p_input">
</div>
<div class="form-group">
<label>Username</label>
<input type="text" name="username" class="form-control p_input">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control p_input">
</div>
<div class="form-group">
<label>Password Again</label>
<input type="password" name="password_confirmation" class="form-control p_input">
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary btn-block enter-btn">Register</button>
</div>
</form>
试试这个
$request->validate(['name' => 'required|string|min:2|max:255',
'surname' => 'required|string|min:2|max:255',
'email' => 'required|string|email|max:255|unique:users',
'username' => 'required|string|max:255|unique:users',
'password' => 'required|string|min:8|confirmed',
'password_confirmation' => 'required']);
希望这能奏效!
使用$请求-
看看注册表控制器。存根插入/vendor/laravel/ui/stubs/Auth
。验证器接受一个数组,而不是一个请求对象,这是RegisterUsers传入的。
注册控制器。树桩
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
和注册用户
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
if ($response = $this->registered($request, $user)) {
return $response;
}
return $request->wantsJson()
? new JsonResponse([], 201)
: redirect($this->redirectPath());
}
因此,您希望将您的函数与寄存器C中的函数相匹配ontroller.stub.
protected function validator(array $request)
{
return Validator::make($request, ['name' => 'required|string|min:2|max:255',
'surname' => 'required|string|min:2|max:255',
'email' => 'required|string|email|max:255|unique:users',
'username' => 'required|string|max:255|unique:users',
'password' => 'required|string|min:8|confirmed',
'password_confirmation' => 'required']);
}
传递给Illumate\Auth\EloquentUserProvider的参数1::validateCreentials()必须是Illumate\合同\Auth\身份验证的实例,应用程序\模型\用户给定的实例,在D:\xampp\htdocs\后端\电子商务\供应商\laravel\框架\src\Illumate\Auth\SessionG中uard.php第384行----我有这个问题请帮我
我使用的是Laravel5.2。 我在表中添加了一个名为的新字段,并将其包含在视图和 我还做了一个检查,看看用户是否将使用一个保留的slug作为他的用户名,如果是,我抛出一个错误,如果用户名是好的,我保存在数据库中。 我正在检查2个保留的段塞和-这就是我保留的全部。 如果我取消检查,数据将正常保存在数据库中,包括保留的slug。所以我必须做检查。 然而,当我应用检查时,我得到了这个错误 Sessi
登录Symfony应用程序时(使用正确的用户名和密码)出现以下错误: ContextErrorException:可捕获的致命错误:传递给Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken的参数4:\uu construct()必须是在D:\xampp\htdocs\essweb\vendor\Sym
前端: 控制器: 我得到这个错误: 类型错误:传递给Gloudemans\Shoppingcart\Cart::search()的参数1必须是闭包的实例,给定数组,在C:\xampp\htdocs\ecomerce\vendor\laravel\framework\src\Illumbite\Support\Facades\Facade中调用。php在线221
帮助我理解并解决这些错误。 错误: Symfony\Component\Debug\Exception\FatalThrowableError(E\u RECOVERABLE\u ERROR)类型错误:传递给App\Http\Controllers\Auth\LoginController::authenticated()的参数1必须是App\Http\Controllers\Auth\Reque
我使用solcialite登录Laravel通过Gihub,但有问题登录。我得到一个错误:Symfony\组件\调试\异常\FatalThrowableError(E_RECOVERABLE_ERROR)类型错误:参数1传递给照明\Auth\SessionGuard::登录()必须实现接口照明\合同\Auth\身份验证,空给定,调用 /var/www/html/testio/vendor/lara