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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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