簡體   English   中英

注冊錯誤,參數1傳遞給laravel 5.8中的Illuminate \\ Auth \\ SessionGuard :: login()

[英]Registration error, Argument 1 passed to Illuminate\Auth\SessionGuard::login() in laravel 5.8

修改我的注冊刀片。 我添加了2個附加功能來觸發用戶注冊。 我需要的數據已保存到適當的表中,但出現此錯誤,

傳遞給Illuminate \\ Auth \\ SessionGuard :: login()的參數1必須實現接口Illuminate \\ Contracts \\ Auth \\ Authenticatable,給定布爾值,在E:\\ wamp64 \\ www \\ aftscredit-appzcoder \\ vendor \\ laravel \\ framework \\ src \\ Illuminate中調用第35行的\\ Foundation \\ Auth \\ RegistersUsers.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'],
        ]);

    }
}

是什么原因造成的? 提前致謝!

嘗試打開RegistersUsers特性並查看第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如何指示必須返回User的實例。 這是關鍵,因為在特征內完成注冊的實際代碼假定一個有效的User模型實例。

在幕后逐步瀏覽代碼並了解Laravel為您所做的工作有時會很有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM