我試圖在用戶註冊後自動登錄。Laravel 5.4 - 註冊後自動登錄
我的用戶註冊方法:
public function register_user(Request $request)
{
if (!$request->ajax()) return false;
$form_rule = [
'email' => 'required|email|max:255|unique:tdshop_user_entity',
'password' => 'required|min:6',
];
$validator = Validator::make($request->all(), $form_rule);
$status = $validator->fails();
$form_errors = [];
foreach($form_rule as $field=>$rules){
$form_errors[$field] = $validator->errors()->first($field);
}
if(!$validator->fails()){
$user = User_entity::create([
'email' => $request['email'],
'password' => bcrypt($request['password']),
]);
Auth::loginUsingId($user->user_id);
}
return json_encode([
'status' => ($status)? 'fail' : 'success',
'result' => json_encode($form_errors)
]);
}
我User_entity型號:
namespace App;
//use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Zizaco\Entrust\Traits\EntrustUserTrait;
use Eloquent;
class User_entity extends Eloquent
{
use Notifiable;
use EntrustUserTrait;
protected $table = 'tdshop_user_entity';
protected $primaryKey = 'user_id';
protected $fillable = ['email','password','status'];
protected $hidden = ['password', 'remember_token'];
public function Attribute_set()
{
return $this->hasOne('App\Attribute_set');
}
public function Attribute_entity()
{
return $this->hasMany('App\Attribute_entity');
}
public function User_address_entity()
{
return $this->hasMany('App\User_address_entity');
}
}
用戶註冊成功,並記錄在數據庫中。 但被顯示給登錄以下錯誤:
ErrorException在SessionGuard.php線407: 參數1傳遞給照亮\驗證\ SessionGuard ::登錄()必須照亮\合同\驗證\的一個實例可認證,應用程序\ User_entity的情況下給出的,稱爲/home/ali/www/brandmashhoor/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php線392和定義
誰能告訴我什麼是正確的問題。
如果用戶在數據庫中堅持,那麼實際的問題在於登錄方法不是寄存器之一。 – Drazxier
包含你'User_entity'模型。 – Samsquanch
@Samsquanch新增了 。 –