laravel - невозможно сохранить значения в столбцах soome - PullRequest
0 голосов
/ 06 марта 2020

У меня есть контроллер регистра (предоставляется 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 вставляет нормально, но не те новые столбцы, которые я добавил.

Я здесь ошибся?

1 Ответ

1 голос
/ 06 марта 2020

Значения не сохраняются, потому что вы не сохраняете Userinfo должным образом.

Делать следующее

if ($data['RegistrationForm'] == 2) {
        //assign track id code to dealer
        $user->track_id = 1911000000 + $user->user_id;
        $user->save();

        $userinfo = $user->userInfo;

        $userinfo->occupation = $data['occupation'];
        $userinfo->ethnicity = $data['race'];
        $userinfo->date_of_birth = $data['dob'];
        $userinfo->gender = $data['gender'];
        $userinfo->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');
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...