• Laravel 8

    Cours Laravel 8 – les données – les ressources d’API

    Laravel permet de bâtir facilement des API à partir de ressource Eloquent. Voyons cela dans cet article. Les API REST REST (Representational State Transfer) est un style d’architecture pour constituer des API. Pour Laravel une API REST est : organisée autours de ressources sans persistance (aucune session) orientée client-serveur pouvant être mis en cache (donc une requête doit retourner toujours les mêmes résultats) retourner du JSON… Si vous n’êtes pas trop sûr de vos connaissances concernant les API REST je vous conseille ce cours. Pour continuer avec notre application de films on peut imaginer ce endpoint pour les informations de tous les films : GET /api/films [ { id: 1,…

  • Laravel 8

    Cours Laravel 8 – les données – le polymorphisme

    Lors des deux précédents chapitres on a vu les principales relations que nous offre Eloquent : hasMany et belongsToMany. Je ne vous ai pas parlé de la relation hasOne parce que c’est juste du hasMany limité à un seul enregistrement et est peu utilisé. Dans tous les cas qu’on a vus on considère 2 tables en relation, même lorsqu’un table pivot sert de lien entre les deux. Dans le présent chapitre on va envisager le cas où une table peut être en relation avec plusieurs autres tables, ce qui se nomme du polymorphisme. Un peu de théorie La relation 1:1 ou 1:n On a vu cette relation, en voici une…

  • Laravel 8

    Cours Laravel 8 – les données – la relation n:n

    Dans le précédent chapitre nous avons vu la relation de type 1:n, la plus simple et la plus répandue. Nous allons maintenant étudier la relation de type n:n, plus délicate à comprendre et à mettre en œuvre. Nous allons voir qu’Eloquent permet de simplifier la gestion de ce type de relation. On va continuer l’application de gestion de films, toujours avec des catégories, mais maintenant on va considérer qu’un film peut appartenir à plusieurs catégories, ce qui change pas mal de choses… Les données La relation n:n Imaginez une relation entre deux tables A et B qui permet de dire : je peux avoir une ligne de la table A…

  • Laravel 8

    Cours Laravel 8 – les données – la relation 1:n

    Pour le moment nous n’avons manipulé qu’une table avec Eloquent. Dans le présent chapitre nous allons utiliser deux tables et les mettre en relation. La relation la plus répandue et la plus simple entre deux tables est celle qui fait correspondre un enregistrement d’une table à plusieurs enregistrements de l’autre table, on parle de relation de un à plusieurs ou encore de relation de type 1:n. Nous allons poursuivre notre gestion de films. Comme nous en avons beaucoup nous éprouvons la nécessité de les classer en catégories : comédie, fantastique, drame, thriller… On va partir du projet dans l’état où on l’a laissé dans le précédent article. Il y a…

  • Laravel 8

    Cours Laravel 8 – les données – les ressources (2/2)

    Dans cet article nous allons terminer de coder la ressource que nous avons commencée dans le précédent. Il nous reste à voir comment créer et modifier un film. Créer un film Les routes Pour la création d’un film on va avoir deux routes : pour afficher le formulaire de création pour soumettre le formulaire Le contrôleur Dans le contrôleur ce sont les méthodes create et store qui sont concernées. On va donc les coder : use App\Http\Requests\Film as FilmRequest; ... public function create() { return view('create'); } public function store(FilmRequest $filmRequest) { Film::create($filmRequest->all()); return redirect()->route('films.index')->with('info', 'Le film a bien été créé'); } La vue index On a déjà codé la…

  • Laravel 8

    Cours Laravel 8 – les données – les ressources (1/2)

    Dans ce chapitre nous allons commencer à étudier les ressources qui permettent de créer des routes « CRUD » (Create, Read, Update, Delete) adaptées à la persistance de données. Comme exemple pratique nous allons prendre le cas d’une table de films. Les données On repart d’un Laravel vierge et on crée une base comme on l’a vu précédemment. Appelons la par exemple laravel8 pour faire original. On renseigne le fichier .env en conséquence : DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel8 DB_USERNAME=root DB_PASSWORD= La migration On va créer avec Artisan le modèle Film en même temps que la migration : php artisan make:model Film --migration Pour faire simple on va se contenter de 3 colonnes…

  • Laravel 8

    Cours Laravel 8 – les données – jouer avec Eloquent

    On a commencé à voir Eloquent et les modèles dans le premier chapitre de cette partie du cours, mais on s’est limité pour le moment à créer un enregistrement. Dans ce chapitre on va aller plus loin en explorant les possibilités d’Eloquent, couplé à un puissant générateur de requêtes, pour manipuler les données. Pour effectuer les manipulations de ce chapitre vous aurez besoin d’une installation fraîche de Laravel. Les migrations devront également être effectuées pour qu’on puisse utiliser la base de données. Tinker Artisan est plein de possibilités, l’une d’elle est un outil très pratique, un REPL (Read–Eval–Print Loop). C’est un outil qui permet d’entrer des expressions, de les faire…

  • Laravel 8

    Cours Laravel 8 – les données – migrations et modèles

    Dans ce chapitre nous allons commencer à aborder les bases de données. C’est un vaste sujet auquel Laravel apporte des réponses efficaces. Nous allons commencer par voir les migrations et les modèles. Les migrations Une migration permet de créer et de mettre à jour un schéma de base de données. Autrement dit, vous pouvez créer des tables, des colonnes dans ces tables, en supprimer, créer des index… Tout ce qui concerne la maintenance de vos tables peut être pris en charge par cet outil. Vous avez ainsi un suivi de vos modifications. La configuration de la base Vous devez dans un premier temps avoir une base de données. Laravel permet de…

  • Laravel 8

    Cours Laravel 8 – les bases – injection de dépendance, conteneur et façades

    Dans ce chapitre nous allons reprendre l’exemple précédent de l’envoi de photos en nous posant des questions d’organisation du code. Laravel ce n’est pas seulement un framework pratique, c’est aussi un style de programmation. Il vaut mieux évoquer ce style le plus tôt possible dans l’apprentissage pour prendre rapidement les bonnes habitudes. Vous pouvez très bien créer un site complet dans le fichier des routes, vous pouvez aussi vous contenter de contrôleurs pour effectuer tous les traitements nécessaires. Je vous propose une autre approche, plus en accord avec ce que nous offre Laravel. Le problème et sa solution Le problème Je vous ai déjà dit qu’un contrôleur a pour mission…