Best practice pour insérer des données dans BDD
Bonjour à tous,
Etant débutant dans Laravel, je suis confronté à des tutos expliquant par exemple comment insérer les données de formulaire dans une bdd.
1er cas:
Directement dans le controlleur avec la méthode "nouveau"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public function nouveau()
{
// Validation des données
request()->validate([
'category' => ['required'],
]);
// Création d'un message dans la base de données avec Eloquent
Message::create([
'category' => request('category'),
]);
return redirect()->route('home')->with('ok', __('La catégorie a bien été enregistrée'));
} |
Second cas:
apparemment il faut créer un request : php artisan make:request CategoryRequest avec notamment une méthode rules()
Code:
1 2 3 4 5 6 7 8
|
public function rules()
{
$id = $this->category ? ',' . $this->category->id : '';
return $rules = [
'category' => 'required|string|max:255|unique:categories,name' . $id,
];
} |
et ensuite on complète la méthode store() du controlleur:
Code:
1 2 3 4 5 6
|
public function store(CategoryRequest $request)
{
Category::create($request->all());
return redirect()->route('home')->with('ok', __('La catégorie a bien été enregistrée'));
} |
Le second cas est plus compliqué à comprendre et à mettre en place.
Mais si cette pratique existe c'est qu'elle a une raison.
Pouvez-vous dans ce cas me donner qques explications ?
Merci ;)