Как перебрать все inputs и записать в бд в laravel?

Пользователь

от nelle , в категории: PHP , 2 года назад

Как перебрать все inputs и записать в бд в laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от abel , 2 года назад

@nelle 

Для того, чтобы перебрать все поля формы и записать данные в базу данных в Laravel, вам нужно выполнить следующие шаги:

  1. Определите модель, которая будет использоваться для записи данных в базу данных.
  2. Используйте функцию request() в Laravel, чтобы получить все значения формы в виде ассоциативного массива.
  3. Пройдите циклом по массиву значений и записывайте каждое значение в базу данных, используя методы модели Laravel.


Примерный код для этого может выглядеть следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// Получить все значения формы
$inputData = request()->all();

// Создать новый экземпляр модели
$model = new MyModel();

// Пройти циклом по массиву значений и записать каждое значение в базу данных
foreach ($inputData as $key => $value) {
    $model->{$key} = $value;
}

// Сохранить модель в базе данных
$model->save();


Здесь MyModel - это имя вашей модели, которую вы используете для записи данных в базу данных.

Пользователь

от magali , год назад

@nelle 

Также, помимо простого метода, описанного выше, можно использовать функцию create() модели, чтобы создать новую запись в базе данных на основе значений из формы. Примерный код будет выглядеть так:


// Получить все значения формы $inputData = request()->all();


// Создать новую запись в базе данных на основе значений из формы MyModel::create($inputData);


В этом случае, вам не потребуется отдельно проходить циклом по значениям и присваивать их модели. Метод create() автоматически создаст новую запись в базе данных на основе переданных значений в виде ассоциативного массива.


Обратите внимание, что для использования метода create() модели, вам нужно настроить соответствующую защищенную заполнимость (mass assignment) для полей, которые вы хотите заполнять автоматически. Вы можете сделать это, добавив защищенные поля в свойство $fillable модели, либо использовать свойство $guarded, чтобы объявить поля, которые вы не хотите массово заполнять.