php - Insert in two tables when registering users in Laravel -


i'm using default laravel 5.1 user registration. have 2 tables: users , shops. when user registers, app should insert user in table users, id , use register shop. i've been reading default authcontroller.php didn't find anything. here authcontroller if helps.

<?php  namespace app\http\controllers\auth;  use app\user; use validator; use app\http\controllers\controller; use illuminate\foundation\auth\throttleslogins; use illuminate\foundation\auth\authenticatesandregistersusers;  class authcontroller extends controller {     /*     |--------------------------------------------------------------------------     | registration & login controller     |--------------------------------------------------------------------------     |     | controller handles registration of new users,     | authentication of existing users. default, controller uses     | simple trait add these behaviors. why don't explore it?     |     */      use authenticatesandregistersusers, throttleslogins;      /**      * create new authentication controller instance.      *      * @return void      */     public function __construct()     {         $this->middleware('guest', ['except' => 'getlogout']);     }      /**      * validator incoming registration request.      *      * @param  array  $data      * @return \illuminate\contracts\validation\validator      */     protected function validator(array $data)     {         return validator::make($data, [             //'name' => 'required|max:255',             'email' => 'required|email|max:255|unique:users',             'password' => 'required|confirmed|min:6',         ]);     }      /**      * create new user instance after valid registration.      *      * @param  array  $data      * @return user      */     protected function create(array $data)     {         return user::create([             //'name' => $data['name'],             'email' => $data['email'],             'password' => bcrypt($data['password']),         ]);     }      /**      * path login route.      *      * @return string      */     public function loginpath()     {         return route('login');     }      /**      * post register / login redirect path.      *      * @return string      */     public function redirectpath()     {         return route('home');     } } 

solved, have integrity constraint violation. code correct?

protected function create(array $data)     {         $user = new user([             'email' => $data['email'],             'password' => bcrypt($data['password'])         ]);      $user->role = 'shop_owner';     $user->remember_token = str_random(10);      $user->save();      $userid = $user->id;      shop::create([         'name' => $data['s_name'],         'address' => $data['s_address'],         'cp' => $data['s_pcode'],         'telephone' => $data['s_tlf'],         'contact_name' => $data['cp_name'],         'contact_num' => $data['cp_tlf'],         'id_user' => $userid     ]);      return $user; } 

there go:

protected function create(array $data)         {             $user = user::create([                 //'name' => $data['name'],                 'email' => $data['email'],                 'password' => bcrypt($data['password']),             ]);              $userid = $user->id;             shop::create([... use $userid here ...]);             return $user;         } 

Comments