Сколько существует способов для хранения данных из формы Laravel в базу данных? - PullRequest
0 голосов
/ 04 ноября 2019

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

Первый способ: создание объекта из модели

$tutor = new Tutor();
$tutor ->name = $request->name;
// in some tutorials they use: 
// $tutor->name = request('name');
// what is the difference?
$tutor ->salary = $request->salary;
$tutor->save();

Второй способ: преобразование объекта в массив

$tutor = array([
  'name'   => $request->name, // vs 'name' => $request->input('name'), what is the difference?
  'salary' => $request->salary
]);
$tutor->save(); // Do I need to save here?

Третий способ: использование глобального вспомогательного метода

$tutor = Tutor::create($request->all());

1 Ответ

1 голос
/ 04 ноября 2019

разница между request('name') и $request('name');

request() - это глобальная вспомогательная функция, которую можно использовать в любом месте для доступа к объекту HTTP-запроса

$request - это параметр, передаваемый в функцию контроллера, что означает, что запрос , передаваемый этому контроллеру, будет полезен при проверке данных через классы запросов формы

Нужно ли сохранять данныездесь?

Второй способ не должен работать вообще, как написано, вы можете иметь в виду

$tutor = new Tutor([
  'name'   => $request->name,
  'salary' => $request->salary
]);
$tutor->save();

, который вручную удаляет добавленные данные из дополнительной формы, он ничем не отличается от

$tutor = new Tutor();
$tutor->create(request()->only(['name', 'salary']));

$request->name vs 'name' => $ request-> input ('name') в чем разница?

с использованием метода inputполучить параметр имени из пользовательского ввода независимо от того, какой метод HTTP использовался GET или POST, или для цитирования документов

Получение входного значения

Используя несколько простых методов, вы можете получить доступ ко всем пользовательским данным с вашего Illuminate\Http\Request экземпляр, не беспокоясь о том, какой HTTP-глагол был использован для запроса. Независимо от HTTP-глагола, метод input может использоваться для извлечения пользовательского ввода:

$name = $request->input('name');

Третий способ использует массовое назначение из всего, что размещено в запросе, включая то, что вы не собирались от злоумышленников (хакеры)

Избегайте этого любой ценой

Надеюсь, это поможет

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