Форма регистрации Laravel с 2 полями с одинаковыми именами, сохраненными в разных таблицах - PullRequest
0 голосов
/ 27 июня 2019

У меня есть пользовательская форма регистрации пользователя, она регистрирует нового пользователя и новую церковную команду одновременно. Таким образом, это сохраняет данные в 2 разные таблицы, пользовательскую таблицу и таблицу команды. Эта форма включает в себя поле ввода для номера телефона пользователя, а также номер телефона церковной команды. Возникающая проблема заключается в том, что номер телефона, введенный во второе поле телефона, переопределяет первый и сохраняет в обеих таблицах, а не сохраняет их оба соответственно.

Это поле ввода телефона из регистрационной формы, это первое поле, которое получает номер телефона пользователя. Второе поле, в котором указывается номер телефона церковных команд, идентично, за исключением языка @lang ('global.teams.fields.phone')

<div class="form-group{{ $errors->has('phone') ? ' has-error' : '' }}">
     <label for="phone" class="col-md-4 control-label">@lang('global.app_phone')</label>

       <div class="col-md-6">
           <input id="phone" type="text" class="form-control" name="phone" value="{{ old('phone') }}" >

           @if ($errors->has('phone'))
              <span class="help-block">
              <strong>{{ $errors->first('phone') }}</strong>
              </span>
           @endif
        </div>
</div>

Вот мой контроллер Validator и создайте код:

protected function validator(array $data)
    {
        return Validator::make($data, [
            'name'                  => 'required|max:191',
            'email'                 => 'required|email|max:191|unique:users',
            'password'              => 'required|min:6|confirmed',
            'church_name'           => 'required|max:191',
            'address'               => 'required|max:191',
            'state'                 => 'required|max:191',
            'city'                  => 'required|max:191',
            'zip'                   => 'required|max:191',
            'phone'                 => 'required|max:191',
            'g-recaptcha-response'  => [new ReCaptcha],
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array $data
     * @return User
     */
    protected function create(array $data)
    {

        $team = Team::create([
            'name' => $data['church_name'],
            'address'  => $data['address'],
            'city'  => $data['city'],
            'state' => $data['state'],
            'zip' => $data['zip'],
            'phone' => $data['phone'],

        ]);


        $user = User::create([
            'name'     => $data['name'],
            'email'    => $data['email'],
            'phone' => $data['phone'],
            'password' => bcrypt($data['password']),
            'team_id' => $team->id

        ]);

        $user->role()->attach(config('app_service.default_role_id'));

        return $user;

Я хотел бы сохранить два разных уникальных телефонных номера в соответствующих таблицах, что должно произойти в этом коде, чтобы получить такой результат?

1 Ответ

1 голос
/ 27 июня 2019

Это должно работать:

<div class="form-group{{ $errors->has('user_phone') ? ' has-error' : '' }}">
     <label for="user_phone" class="col-md-4 control-label">@lang('global.app_user_phone')</label>

       <div class="col-md-6">
           <input id="user_phone" type="text" class="form-control" name="user_phone" value="{{ old('user_phone') }}" >

           @if ($errors->has('user_phone'))
              <span class="help-block">
              <strong>{{ $errors->first('user_phone') }}</strong>
              </span>
           @endif
        </div>
</div>

<div class="form-group{{ $errors->has('church_team_phone') ? ' has-error' : '' }}">
     <label for="church_team_phone" class="col-md-4 control-label">@lang('global.app_church_team_phone')</label>

<div class="col-md-6">
           <input id="church_team_phone" type="text" class="form-control" name="church_team_phone" value="{{ old('church_team_phone') }}" >

           @if ($errors->has('church_team_phone'))
              <span class="help-block">
              <strong>{{ $errors->first('church_team_phone') }}</strong>
              </span>
           @endif
        </div>
</div>

и контроллер:

protected function validator(array $data)
    {
        return Validator::make($data, [
            'name'                  => 'required|max:191',
            'email'                 => 'required|email|max:191|unique:users',
            'password'              => 'required|min:6|confirmed',
            'church_name'           => 'required|max:191',
            'address'               => 'required|max:191',
            'state'                 => 'required|max:191',
            'city'                  => 'required|max:191',
            'zip'                   => 'required|max:191',
            'user_phone'            => 'required|max:191',
            'church_team_phone'     => 'required|max:191',
            'g-recaptcha-response'  => [new ReCaptcha],
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array $data
     * @return User
     */
    protected function create(array $data)
    {

        $team = Team::create([
            'name' => $data['church_name'],
            'address'  => $data['address'],
            'city'  => $data['city'],
            'state' => $data['state'],
            'zip' => $data['zip'],
            'phone' => $data['church_team_phone'],

        ]);


        $user = User::create([
            'name'     => $data['name'],
            'email'    => $data['email'],
            'phone' => $data['user_phone'],
            'password' => bcrypt($data['password']),
            'team_id' => $team->id

        ]);

        $user->role()->attach(config('app_service.default_role_id'));

        return $user;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...