![](/img/trans.png)
[英]Argument 1 passed to Illuminate\Auth\SessionGuard::login() when adding ROLE during registration in laravel 5.8
[英]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.