У меня есть контроллер регистра (предоставляется Laravel), и у меня есть две разные регистрационные формы (Клиент и Дилер), и они оба используют один и тот же контроллер. Разница между этими двумя формами заключается в том, что определенные поля ввода находятся в одной форме, но не в другой. Так что мой код работает нормально, но я добавил три новых поля (также три новых столбца) в форму дилера, и он не делает вставки в столбцы occupation
, date of birth
, gender
и ethnicity
, когда я регистрировал его .
Мой RegisterController. php:
protected function create(array $data)
{
$user = User::create([
// Users table
'email' => $data['email'],
'password' => Hash::make($data['password'])
]);
$user->userInfo()->create([
'name' => $data['name'],
'NRIC' => $data['nric'], // Create NRIC field.
]);
$user->userAddresses()->create([
'address_1' => $data['homeaddress1'],
'address_2' => $data['homeaddress2'],
'address_3' => $data['homeaddress3'],
'zipcode' => $data['postcode'],
]);
$user->userContacts()->create([
'mobile_num' => $data['number'],
'emergency_num' => $data['emergency']
]);
// check if dealer form is registered, assign dealer role or otherwise
if ($data['RegistrationForm'] == 2) {
//assign track id code to dealer
$user->track_id = 1911000000 + $user->user_id;
$user->userInfo()->occupation = $data['occupation'];
$user->userInfo()->ethnicity = $data['race'];
$user->userInfo()->date_of_birth = $data['dob'];
$user->userInfo()->gender = $data['gender'];
$user->save();
$user->assignRole('1');
$user->assignRole('2');
} else {
//assign track id code to customer
$user->track_id = 1913000000 + $user->user_id;
$user->userAddresses()->shipping_address = $data['shippingaddress'];
$user->save();
$user->assignRole('1');
}
return $user;
}
}
Я проверил свои модели, и они выглядели нормально.
Модель UserInfo:
class UserInfo extends Model
{
// Set table
protected $table = 'user_infos';
// Set timestamps
public $timestamps = true;
// Set primary key
protected $primaryKey = 'user_id';
// Set mass assignable columns
protected $fillable = [
'name',
'NRIC',
'dealer_id',
'ethnicity',
'gender',
'date_of_birth',
'occupation'
];
/**
* Get the user info associated with the user.
*/
public function user()
{
return $this->belongsTo('App\Models\Users\User', 'user_id');
}
}
track_id
и assignRole
вставляет нормально, но не те новые столбцы, которые я добавил.
Я здесь ошибся?