当前位置: 首页 > 知识库问答 >
问题:

注册错误,参数1在laravel 5.8中传递给Illumate\Auth\SessionGuard::登录()

边霄
2023-03-14

修改我的注册刀片。我添加了2个触发用户注册的附加功能。我需要的数据被保存到适当的表中,但是我有这个错误,

Argument 1传递给Illumate\Auth\SessionGuard::登录()必须实现接口Illumate\合同\Auth\身份验证,布尔值给定,在第35行调用E:\wamp64\www\aftspirdit-appzcoder\供应商\laravel\框架\src\Illumate\Foundation\Auth\注册sers.php

这是我的注册控制器

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\Referral;
use App\CollectorMember;
use App\HasRoles;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;

class RegisterController extends Controller
{
    use RegistersUsers;

    protected $redirectTo = '/home';


    public function __construct()
    {
        $this->middleware('guest');       
    }

    public function index(Request $request)
    {
        $referral = '';
        $keyword = $request->get('search');
        $referral = Referral::where([
                         ['code', $keyword],
                         ['status', 0]
                         ])->first();        

        if (is_null($keyword))
            return view ( 'Auth.register');
        elseif ($referral)
            return view ( 'Auth.register', compact('referral', $referral))
                                    ->withDetails ( $referral )
                                    ->withQuery ( $keyword );
        else 
            return view ( 'Auth.register')->withMessage ( 'The code you provided is not EXISTING or not AVAILABLE.' );
    }

    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'],
        ]);
    } 

    protected function create(array $data)
    {

        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);

        $user_id = $user->id;

        Referral::find($data['referral_id'])->update ([
            'status'    => 1,
            'date_used' => $data['referral_date_used']
        ]);


        return CollectorMember::create ([
            'collector_id' => $data['referral_generate_by'],
            'borrower_id'  => $user_id,
            'referral_id'  => $data['referral_id'],
        ]);

    }
}

这是什么原因造成的?提前谢谢!

共有1个答案

颜均
2023-03-14

尝试打开注册表Userstrait并查看第35行。未创建用户。

创建用户的原始Laravel控制器代码如下:

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return \App\User
     */
    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }

注意DocBlock如何指示必须返回的用户的实例。这是关键,因为在trait中完成注册的实际代码假定一个有效的用户模型实例。

有时,深入了解代码并了解Laravel在幕后为您做了什么是有帮助的。

 类似资料:
  • 我使用solcialite登录Laravel通过Gihub,但有问题登录。我得到一个错误:Symfony\组件\调试\异常\FatalThrowableError(E_RECOVERABLE_ERROR)类型错误:参数1传递给照明\Auth\SessionGuard::登录()必须实现接口照明\合同\Auth\身份验证,空给定,调用 /var/www/html/testio/vendor/lara

  • 我正在尝试发送验证电子邮件,这是给我的错误代码 它给了我以下错误: 传递给App\Http\Controllers\Auth\RegisterController::registed()的参数1必须是App\Http\Controllers\Auth\Request的实例,给定的照亮\Http\Request的实例,在/home/bassel/book\u generation/vendor/la

  • 帮助我理解并解决这些错误。 错误: Symfony\Component\Debug\Exception\FatalThrowableError(E\u RECOVERABLE\u ERROR)类型错误:传递给App\Http\Controllers\Auth\LoginController::authenticated()的参数1必须是App\Http\Controllers\Auth\Reque

  • 我使用的是Laravel5.2。 我在表中添加了一个名为的新字段,并将其包含在视图和 我还做了一个检查,看看用户是否将使用一个保留的slug作为他的用户名,如果是,我抛出一个错误,如果用户名是好的,我保存在数据库中。 我正在检查2个保留的段塞和-这就是我保留的全部。 如果我取消检查,数据将正常保存在数据库中,包括保留的slug。所以我必须做检查。 然而,当我应用检查时,我得到了这个错误 Sessi

  • 传递给Illumate\Auth\SessionGuard::登录()的参数1必须是Illumate\合同\Auth\身份验证的实例,Illumate\Http\重定向响应的实例 我有我的注册控制器,它在创建用户之前检查成员身份是否存在于单独的成员表中。对于现有成员Id,它可以正常工作,但是当用户输入一个不存在的Id时,我需要它重定向到带有错误消息的同一注册页面。但我得到的只是上面的错误。请注意,

  • 传递给Illumate\Auth\EloquentUserProvider的参数1::validateCreentials()必须是Illumate\合同\Auth\身份验证的实例,应用程序\模型\用户给定的实例,在D:\xampp\htdocs\后端\电子商务\供应商\laravel\框架\src\Illumate\Auth\SessionG中uard.php第384行----我有这个问题请帮我