我正在为学校创建网站,我正在使用laravel内置身份验证来注册新用户,但我想在注册表单中添加一个用于刮刮卡引脚的字段,以便检查引脚表是否使用该引脚。我的问题是如果authcontroller中的create function无法返回视图。
所以我收到了此错误消息
Guard.php第430行中的错误异常:
传递给Illuminate \ Auth \ Guard :: login()的参数1必须是 Illuminate \ Contracts \ Auth \ Authenticatable的实例,实例 照亮\ Http \ RedirectResponse给出
这是我的authcontroller
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
$spin=$data['pin'];
$pins = Pin::where('pin', $spin)
->get();
if( $pins[0]->status == 0)
{
Pin::where('pin', $spin)
->update(['status' => 1]);
return User::create([
'name' => $data['name'],
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
else{
return redirect()->back();
}
答案 0 :(得分:0)
原因是您错误地修改了受保护的ghc-pkg
方法。从文档化的注释中查看返回响应必须始终为create()
?另一方面,您有时会返回重定向响应 - 因此您会收到错误消息。
有些laravel类可能会尝试使用User
方法对用户进行身份验证。当它收到create()
实例时,会抛出错误,因为它期望RedirectResponse
的实例
请勿在{{1}}方法
中返回User
以外的任何内容