Archives, navigation, poussières de bits, :vice:

Discussions sans rapport avec Nintendo mais qui n'ont pas un degré de connerie excessif : Voiture, Politique, Manga, TV, un message sympa...

Modérateur : DojoSuperHeroes

Avatar de l’utilisateur
meduz'
Grand analyst
Messages : 10487
Inscription : 01 avr. 2005 13:46
Localisation : Devant la Switch
Contact :

Re: Archives, navigation, poussières de bits, :vice:

Message par meduz' »

Si t’utilises pas les named routes, je te conseille de le faire.

T’auras dans ton fichier routes (routes/web.php) :

Code : Tout sélectionner

Route::get('contact', 'ContactController@index')->name('contact');
Route::post('contact', 'ContactController@store')->name('storeContact');
Et dans ton formulaire :

Code : Tout sélectionner

<form method="post" action="{{ route('storeContact') }}">
Avatar de l’utilisateur
Cyrare
Satoru Iwata
Messages : 26698
Inscription : 15 avr. 2002 13:04
Localisation : Paris, France

Re: Archives, navigation, poussières de bits, :vice:

Message par Cyrare »

Nommer les routes, je l'avais fait sur mes premiers pas avec Laravel y'a longtemps mais j'essaye de pas me submerger de trucs nouveaux et tout ce que je peux faire à l'ancienne, je reste dessus.
Certes, ça m'aurait empêché de rencontrer ce problème mais bon, je préfère me concentrer sur l'essentiel. D'autant que c'est le genre de fonctionnalité que je trouve utile sur des gros sites très complexes mais sur un petit site avec 3 pages et 1 catégorie dynamique, je vois pas trop l’intérêt.
Avatar de l’utilisateur
meduz'
Grand analyst
Messages : 10487
Inscription : 01 avr. 2005 13:46
Localisation : Devant la Switch
Contact :

Re: Archives, navigation, poussières de bits, :vice:

Message par meduz' »

C’est une petite bonne habitude facile à prendre. :p
Avatar de l’utilisateur
Cyrare
Satoru Iwata
Messages : 26698
Inscription : 15 avr. 2002 13:04
Localisation : Paris, France

Re: Archives, navigation, poussières de bits, :vice:

Message par Cyrare »

Ouais mais dans laravel, y'a une tonne de petits trucs. :oscar:
Après, je dis pas que je ferai jamais mais là j'en ai pas l'utilité et je préfère retenir l'essentiel.

tldr;
Spoiler:
Je pense que je radote mais :

Pour te donner un exemple de pourquoi je le fais comme ça, quand j'avais parcouru laravel y'a longtemps, j'avais suivi un tuto qui utilisait une classe Html pour générer des formulaires. Sur le principe c'est trop cool, dans les faits c'était pas très économe en touches tapées, ça complexifiait l'apprentissage, je passais du temps à faire un truc que je maîtrisais pas alors que je maîtrise plutôt pas mal le html, ça m'avait complètement démotivé.
Pareil quand j'avais appris symfony, j'avais fait l'effort d'apprendre twig, Doctrine, etc. Et en fait, ça m'avait démotivé parce que trop vaste, trop de chose à voir, apprentissage pas rentable pour un petit projet.

Là, de laravel, je me force à juste faire du MVC de base, blade je fais juste l'essentiel (yield, section, foreach et pas grand chose de plus) Eloquent, je vais essayer de faire la base de chez base aussi. Et même là, je crois que je serai pas rentable par rapport à autrefois quand je faisais tout à la main. Mais je me force pour apprendre, et je sais que ça va être mieux codé/plus secure, et j'ai envie de faire quelques plus gros projets donc faut maîtriser les fondamentaux.
Avatar de l’utilisateur
meduz'
Grand analyst
Messages : 10487
Inscription : 01 avr. 2005 13:46
Localisation : Devant la Switch
Contact :

Re: Archives, navigation, poussières de bits, :vice:

Message par meduz' »

T’as totalement raison. (y)

Et ce que tu décris, c’est effectivement la base avec laquelle tu vois déjà la valeur ajoutée de Laravel (la base de Blade qui couvre +90% des besoins, la base d’Eloquent et du Query Builder). J’pense que les named routes font partie de la base facilement assimilable, mais évidemment c’est toi qui vois où tu les places dans ta découverte. :) Au début, avec Eloquent et le Query Builder, j’ai rencontré quelques cas bien sentis de jointures un peu complexe que j’ai fini par faire en dur (avec DB::raw("ton putain de SQL")), mais Eloquent a toujours couvert le gros des besoins (et depuis il a évolué, j'pense bien).

Après, les formulaires, c’est toujours le truc le plus chiant du monde, que ce soit côté HTML, CSS, JS ou back-end. :nard:

Les trucs importants niveaux formulaires, pour moi, c’est la validation via un fichier Request plutôt que dans le contrôleur, et évidemment l’affichage des erreurs dans la vue (la variable $errors est automatiquement dispo dans la vue !)

La validation dans le fichier Request, ça permet d’avoir la fonction de stockage DB super courte. Par exemple pour une inscription via mail…
Spoiler:
La méthode store() du contrôleur :

Code : Tout sélectionner

    public function store(WaitingUserRequest $request)
    {
        $user = new WaitingUser;
        $user->email = $request->email;
        $user->save();

        return $this->index($user);
    }
La class Request pour la validation (la méthode rules() est la seule à remplir, et y'a éventuellement messages() pour des messages d'erreur custom :

Code : Tout sélectionner

class WaitingUserRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'agreement' => 'size:0', // honeypot
            'email' => 'required|unique:waiting_users,email',
        ];
    }

    /**
     * Get the error messages for the defined validation rules.
     *
     * @return array
     */
    public function messages()
    {
        return [
            'email.required' => __('waiting.validation.required'),
            'email.unique' => __('waiting.validation.unique'),
        ];
    }
}
Oops y’a des erreurs dans le champ email :

Code : Tout sélectionner

@if ($errors->has('email'))
    @foreach ($errors->get('email') as $message)
    	<p><strong>{!! $message !!}</strong></p>
    @endforeach
@endif
Avatar de l’utilisateur
meduz'
Grand analyst
Messages : 10487
Inscription : 01 avr. 2005 13:46
Localisation : Devant la Switch
Contact :

Re: Archives, navigation, poussières de bits, :vice:

Message par meduz' »

Vas-y modo, renomme ce sujet en « Laravel et développement web moderne ». :ouaisouais:
Avatar de l’utilisateur
Cyrare
Satoru Iwata
Messages : 26698
Inscription : 15 avr. 2002 13:04
Localisation : Paris, France

Re: Archives, navigation, poussières de bits, :vice:

Message par Cyrare »

D'ailleurs, ça me fait penser qu'on a pas répondu à l'objet initial du topic. :oscar:
meduz' a écrit : 24 juin 2019 13:29Après, les formulaires, c’est toujours le truc le plus chiant du monde, que ce soit côté HTML, CSS, JS ou back-end. :nard:
C'est pour ça que je cherchais un générateur crud. :oscar: Codeigniter en a un tiers en ligne que je trouve super bien. Je veux pas installer un module, juste que ça me donne le code. Je crois qu'à terme je ferai le même générateur mais pour laravel si je continue à en faire. :oscar:
meduz' a écrit : 24 juin 2019 13:29Les trucs importants niveaux formulaires, pour moi, c’est la validation via un fichier Request plutôt que dans le contrôleur (...)
Merci, ça m'intéresse. J'ai déjà géré $errors, pour ça, c'est cool, mais le fichier request, je connais pas et j'aime pas faire toutes les validations dans le contrôleur, c'est super lourd, je vais regarder à tête reposée.
Avatar de l’utilisateur
meduz'
Grand analyst
Messages : 10487
Inscription : 01 avr. 2005 13:46
Localisation : Devant la Switch
Contact :

Re: Archives, navigation, poussières de bits, :vice:

Message par meduz' »

Hésite pas à regarder la vidéo correspondante sur Laracasts, ça sera probablement très bien expliqué.
Répondre