Сохранение значения параметра html select в базе данных с помощью контроллера Laravel

Сохранение значения параметра html select в базе данных с помощью контроллера Laravel

20.02.2020 06:18:30 Просмотров 42 Источник

В настоящее время я работаю над проектом Laravel, и мне нужно сохранить содержимое данных, полученных при регистрации Пользователя, в таблице под названием пользователи.я смог правильно сохранить другие значения в таблице, кроме значения параметров выбора html.

Ниже мой HTML-формы:

<div class="form-group">
   <label for="User_type" class="col-md-4 col-form-label text-md-right">{{ __('Select User type'
   </label>
   <div class="col-md-6">
      <select class="form-input" name="signup_type">
          <option value="single_user">single_user</option>
          <option value="multi_user">multi_user</option>    
      </select>
    </div>
</div>

а вот мой контроллер laravel для добавления необходимых значений в базу данных:

protected function validator(array $data)
{
   return Validator::make(
   $data, ['user_name' => ['required', 'string', 'max:32', 'unique:users'],
   'name' => ['required', 'string', 'max:100'],
   'mobile_phone' => ['required', 'string', 'max:15',           'unique:users'],
   'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
   'password' => ['required', 'string', 'min:8', 'confirmed'],
   'signup_type' => ['required','string','max:30'],]
    );
   }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return \App\User
     */
protected function create(array $data)
  {
     if (substr($data['mobile_phone'], 0, 1) == 0) {
          $data['mobile_phone'] = substr(
          $data['mobile_phone'], 1, strlen($data['mobile_phone'])-1
          );
      }
      $data['mobile_phone'] = $data['dialingcode'].$data['mobile_phone'];
      return User::create(
        ['user_name' => $data['user_name'],
        'name' => $data['name'],
        'email' => $data['email'],
        'mobile_phone' => $data['mobile_phone'],
        'password' => Hash::make($data['password']),
        'signup_type' => $data['signup_type'],
        'role_id' => 1,]
      );  
}

но каждый раз, когда я проверяю значение signup_type в базе данных, оно всегда равно null.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/60323151/saving-the-value-of-html-select-option-in-database-using-laravel-controller#comment106706759_60323151
проверьте в пользовательской модели заполняемый / охраняемый массив пожалуйста, если там вы не можете найти ничего странного, пожалуйста, опубликуйте всю html форму
https://stackoverflow.com/questions/60323151/saving-the-value-of-html-select-option-in-database-using-laravel-controller#comment106707058_60323151
@Berto99 большое спасибо, я забыл, что не добавлял signup_type в пользовательскую модель, я изменил страницу регистрации недавно, чтобы включить signup_type, и я забыл добавить его в signup_type...Проблема решена!!!
https://stackoverflow.com/questions/60323151/saving-the-value-of-html-select-option-in-database-using-laravel-controller#comment106707475_60323151
уж град бы помог, добавлю ответ, дабы закрыть вопрос
https://stackoverflow.com/questions/60323151/saving-the-value-of-html-select-option-in-database-using-laravel-controller#comment106708231_60323151
Пожалуйста, прочитайте, при каких обстоятельствах я могу добавить “срочно " или другие подобные фразы к моему вопросу, чтобы получить более быстрые ответы? - суть в том, что это не идеальный способ обращения к добровольцам и, вероятно, контрпродуктивный для получения ответов. Пожалуйста, воздержитесь от добавления этого к вашим вопросам.
https://stackoverflow.com/questions/60323151/saving-the-value-of-html-select-option-in-database-using-laravel-controller#comment106709367_60323151
@ halfer спасибо...я так и сделаю.

Ответы - Сохранение значения параметра html select в базе данных с помощью контроллера Laravel / Saving the value of html select option in database using Laravel controller

Является ответом!
Berto99

20.02.2020 06:43:03

Вы должны проверить в Userмодели fillableи guardedмассивы, чтобы разрешить массовое назначение также на этом поле.

Закрыть X