如何解决Laravel 返回注册 ID
我正在尝试自定义 Laravel 的寄存器,并且可以正常工作,但是我需要在某些字段中添加上次注册的 ID。在我的实际代码中,它注册一切正常,但注册后没有自动登录。
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data,[
'name' => ['required','string','max:255'],'email' => ['required','email','max:255','unique:ssn'],'account' => ['required','unique:user_auth'],'password' => ['required','min:8','confirmed'],]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
$ssn1 = mt_rand(1000000,9999999);
$ssn2 = mt_rand(100000,999999);
$ssn = $ssn1 . $ssn2;
$user_auth = User::create([
'account' => $data['account'],'password' => DB::raw("CONVERT(BINARY(16),".l2off($data['password'])." )"),'quiz1' => $data['quiz1'],'quiz2' => $data['quiz2'],'answer1' => DB::raw("CONVERT(BINARY(16),".l2off($data['answer1'])." )"),'answer2' => DB::raw("CONVERT(BINARY(16),".l2off($data['answer2'])." )"),]);
$userId = $user_auth->id;
$ssn_info = ssn::create([
'ssn' => $ssn,'name' => $data['name'],'email' => $data['email'],'job' => $data['job'],'phone' => $data['phone'],'zip' => $data['zip'],'addr_main' => $data['addr_main'],'addr_etc' => $data['addr_etc'],'account_num' => $user_auth->id,]);
$user_info = user_info::create([
'account' => $data['account'],'ssn' => $ssn,'kind' => "99",]);
$user_account = user_account::create([
'account' => $data['account'],'pay_stat' => "1",]);
}
}
但是如果把它改成
return User::create([
'account' => $data['account'],]);
解决方法
我通过在末尾添加 return $user_auth;
解决了这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。