Laravel 5

Pour vous permettre un accès thématique voici des liens vers les sujets traités dans les différents chapitres :

Un site d’annonces

  1. Les données
  2. La page d’accueil
  3. Les annonces
  4. Annonce et message
  5. Créer une annonce
  6. L’administration (1/2)
  7. L’administration (2/2)
  8. L’interface utilisateur

Ce projet a été créé avec Laravel 5. Si vous utilisez une version ultérieure (6, 7 ou même 8) vous rencontrerez quelques bugs normalement faciles à corriger.

 

Laravel 5.7 par la pratique

  1. Introduction
  2. Installation et style
  3. L’authentification
  4. Les données
  5. Les catégories 1/2
  6. Les catégories 2/2
  7. Les images
  8. La galerie
  9. Gestion de ses photos
  10. Le profil
  11. Les albums 1/2
  12. Les albums 2/2
  13. L’administration
  14. Notation des photos
  15. Les notifications
  16. Les langues

 

 

Créer une application avec Laravel 5.5

  1. Introduction
  2. Installation et style
  3. Les vues de l’authentification
  4. Les données
  5. Les catégories 1/2
  6. Les catégories 2/2
  7. Les images
  8. La galerie 1/2
  9. La galerie 2/2
  10. Le profil
  11. Les langues
  12. Les tests
  13. Ajouter le changement de catégorie

 

Cours Laravel 5.5

I – Les bases

  1. Présentation générale
  2. Un environnement de développement
  3. Installation et organisation
  4. Le routage
  5. Les réponses
  6. Artisan et les contrôleurs
  7. Formulaires et middlewares
  8. La validation
  9. Envoyer un email
  10. Configuration, session et gestion de fichier
  11. Injection de dépendance, conteneur et façades

II – Les données

  1. Migrations et modèles
  2. L’authentification
  3. L’oubli du mot de passe
  4. Jouer avec Eloquent
  5. La relation 1:n
  6. La relation n:n
  7. Le polymorphisme
  8. Gérer un arbre
  9. La pagination
  10. Les ressources
  11. Les assistants

III – Plus loin avec Laravel

  1. Les événements
  2. La localisation
  3. Les notifications
  4. La sécurité
  5. Ajax
  6. Les vues
  7. Les tests
  8. Les fichiers et le cache
  9. CSS et Javascript
  10. Vue.js

 

Cours Laravel 5.3

I – Les bases

  1. Présentation générale
  2. Un environnement de développement
  3. Installation et organisation
  4. Le routage
  5. Les réponses
  6. Artisan et les contrôleurs
  7. Formulaires et middlewares
  8. La validation
  9. Envoyer un email
  10. Configuration, session et gestion de fichiers
  11. Injection de dépendance, conteneur et façades
  12. CSS et Javascript

II – Les données

  1. Migrations et modèles
  2. Les ressources (1/2)
  3. Les ressources (2/2) et les erreurs
  4. L’authentification
  5. L’oubli du mot de passe
  6. La relation 1:n
  7. La relation n:n (1/2)
  8. La relation n:n (2/2)
  9. Un concepteur de schéma
  10. Manipuler les données

III – Plus loin avec Laravel

  1. Une application d’exemple
  2. Des vues propres
  3. La localisation
  4. Les événements
  5. La sécurité
  6. Les notifications
  7. Ajax
  8. Les tests unitaires
  9. Le déploiement

 

Série « créer une application Laravel 5.2 »

Cette série a pour objectif de décrire la création de cette application d’exemple.

  1. Créer une application : les données
  2. Créer une application : routes, middlewares et commandes
  3. Créer une application : l’interface
  4. Créer une application : l’authentification
  5. Créer une application : le contact
  6. Créer une application : les articles (front-end)
  7. Créer une application : les articles (back-end)
  8. Créer une application : les utilisateurs
  9. Créer une application : des vues propres

 

Série « les relations avec Eloquent »

  1. Les relations avec Eloquent (1/2)
  2. Les relations avec Eloquent (2/2)

 

Série « Laravel et AngularJS »

  1. Laravel et AngularJS : présentation
  2. Laravel et AngularJS : données et initialisation
  3. Laravel et AngularJS : login et logout
  4. Laravel et AngularJS : gestion des rêves

 

Divers

Print Friendly, PDF & Email

51 commentaires

  • bestmomo

    Il semblerait qu’il y ait eu un changement dans le framework et le seeder déclenche l’événement de création du modèle et ça plante à la création du thumb. En attendant de trouver quelque chose de plus élégant tu peux toujours faire ça dans App\Listeners\ModelCreated :

    public function handle(EventModelCreated $event)
    {
    $event->model->ingoing()->save(new Ingoing);

    if (request ()->server ("SCRIPT_NAME") !== 'artisan') {
    Thumb::makeThumb ($event->model);
    }
    }

    Edit : après analyse plus approfondie il suffit de bien renseigner la variable APP_URL dans le fichier .env pour que ça passe 🙂

  • johnsmith

    bonjour bestmomo j’aimerais tester votre exemple « Laravel 5.5 example for tutorial  » mais je n’arrive pas à l’installer correctement.
    Au niveau des migrations j’ai un message d’erreur que voici:
    λ php artisan migrate –seed
    Migration table created successfully.
    Migrating: 2014_10_12_100000_create_password_resets_table
    Migrated: 2014_10_12_100000_create_password_resets_table
    Migrating: 2017_02_01_233219_create_users_table
    Migrated: 2017_02_01_233219_create_users_table
    Migrating: 2017_03_10_233219_create_categories_table
    Migrated: 2017_03_10_233219_create_categories_table
    Migrating: 2017_03_10_233219_create_posts_table
    Migrated: 2017_03_10_233219_create_posts_table
    Migrating: 2017_03_10_233220_create_comments_table
    Migrated: 2017_03_10_233220_create_comments_table
    Migrating: 2017_03_10_233220_create_contacts_table
    Migrated: 2017_03_10_233220_create_contacts_table
    Migrating: 2017_03_10_233220_create_ingoings_table
    Migrated: 2017_03_10_233220_create_ingoings_table
    Migrating: 2017_03_10_233220_create_notifications_table
    Migrated: 2017_03_10_233220_create_notifications_table
    Migrating: 2017_03_10_233220_create_post_tag_table
    Migrated: 2017_03_10_233220_create_post_tag_table
    Migrating: 2017_03_10_233220_create_tags_table
    Migrated: 2017_03_10_233220_create_tags_table
    Migrating: 2017_03_18_145906_create_category_post_table
    Migrated: 2017_03_18_145906_create_category_post_table
    Migrating: 2017_03_18_145916_create_foreign_keys
    Migrated: 2017_03_18_145916_create_foreign_keys

    In Connection.php line 664:

    SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘confirmed’ in ‘field list’ (SQL: insert into `users` (`name`, `email`, `passwo
    rd`, `role`, `valid`, `confirmed`, `remember_token`, `updated_at`, `created_at`) values (GreatAdmin, admin@la.fr, $2y$10$OoC6KbJtsY.D/
    Dlm.C0.YOcieVz8ZqDD8sOUoe4pyLtbdzUmUhKRS, admin, 1, 1, y5fpWCqJmV, 2018-08-31 10:40:37, 2018-08-31 10:40:37))

    In Connection.php line 452:

    SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘confirmed’ in ‘field list’
    par contre avec la version 5.3 tout marche
    Merci de votre aide

      • johnsmith

        Même résultat en ayant tout recommencé depuis le début. On dirait que la table « users » n’est pas la bonne.
        Quand tu vas dans « database/factories/UserFactory.php » il y a une ligne « confirmed » que je ne retrouve pas dans la BD de même quand tu insères des données dans « database\seeds\DatabaseSeeder.php », il y a la même ligne « ‘confirmed’ => true, » mais pas dans la BD.
        erreur : « SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘confirmed’ in ‘field list’ (SQL: insert into `users` (`name`, `email`, `passwo
        rd`, `role`, `valid`, `confirmed`, `remember_token`, `updated_at`, `created_at`) values (GreatAdmin, admin@la.fr, $2y$10$GHARfgdtduLBz
        pdl1McxVOPpOxdqhWUdlxnhzf1NKNmIHjhQ2pn2W, admin, 1, 1, 0ON3SrlpGl, 2018-08-31 13:34:01, 2018-08-31 13:34:01)) », peut être que je suis hors sujet.
        Merci d’avoir répondu rapidement.

      • johnsmith

        je t’envoie la fonctionup que j’ai
        « Schema::create(‘users’, function(Blueprint $table) {
        $table->increments(‘id’);
        $table->timestamps();
        $table->string(‘name’)->unique();
        $table->string(’email’)->unique();
        $table->string(‘password’);
        $table->rememberToken();
        $table->enum(‘role’, array(‘user’, ‘redac’, ‘admin’));
        $table->boolean(‘valid’)->default(false); »

  • tapond

    bonjour j’ai un probleme depuis quelque jours avec laravel et Ajax
    en effet je dispose d’un formulaire,d’une route , d’un controlleur et enfin de mon script ajax que voici:
    $(document).on(‘click’, ‘[name= »save »]’, function(){

    $.ajax({
    type: ‘POST’,
    url: « {{URL::route(‘contact’)}} »,
    data: {
    //’token’ : $(‘[name= »token »]’).val(),
    //’nom’: $(‘[name= »nom »]’).val(),
    //’email’: $(‘[name= »email »]’).val(),
    // ‘texte’: $(‘[name= »texte »]’).val()
    ‘id’ : ‘4’
    },

    /*complete: function(){
    alert(‘!!!!!!!!!!!!!!’);
    },*/

    success: function(){
    alert(« arrivee »);
    },

    error: function(){
    alert(« calee en route »);
    },

    });

    });

    Route::get(‘/contact’, ‘ContactController@getContact’)->name(‘contact’);
    Route::post(‘/contact’, ‘ContactController@postContact’)->name(‘contact’);

    class ContactController extends Controller
    {

    public function getContact()
    {
    return view(‘contact’);
    }

    public function postContact(ContactRequest $request)
    {
    $contact = new Contact;
    $contact->nom = $request->input(‘nom’);
    $contact->email = $request->input(’email’);
    $contact->texte = $request->input(‘texte’);

    $contact->save();

    }
    }

    le soucis c’est que chaque fois que je clique sur le boutton, j’ai toujours le alert(‘calee en route’) je ne comprend pas pourquoi. je ne comprend pas pouquoi j’arrive pas à joindre ma route

  • ronald169

    salut,
    j’arrive pas a executer la commande npm install
    λ npm install
    npm WARN deprecated gulp-util@3.0.8: gulp-util is deprecated – replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
    npm ERR! Unexpected end of JSON input while parsing near ‘…d209bcbf18477ff21b0d8’

    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\ronald\AppData\Roaming\npm-cache\_logs\2018-05-01T01_50_03_856Z-debug.log

    j’ai chercher la solution du cote de medium mais sans success
    comment peut-on resourdre cela ?

  • adel

    bonjour mesieur
    s il vous plait j ai un probleme
    j ai mis a jour mon php a 7.2 pour balier les probleme lier au extensions symphony mais il m affiche le probleme suivant
    o enable extensions, verify that they are enabled in your .ini files:
    – /etc/php/7.2/cli/php.ini
    – /etc/php/7.2/cli/conf.d/10-opcache.ini
    – /etc/php/7.2/cli/conf.d/10-pdo.ini
    – /etc/php/7.2/cli/conf.d/20-calendar.ini
    – /etc/php/7.2/cli/conf.d/20-ctype.ini
    – /etc/php/7.2/cli/conf.d/20-curl.ini
    – /etc/php/7.2/cli/conf.d/20-exif.ini
    – /etc/php/7.2/cli/conf.d/20-fileinfo.ini
    – /etc/php/7.2/cli/conf.d/20-ftp.ini
    – /etc/php/7.2/cli/conf.d/20-gettext.ini
    – /etc/php/7.2/cli/conf.d/20-iconv.ini
    – /etc/php/7.2/cli/conf.d/20-json.ini
    – /etc/php/7.2/cli/conf.d/20-mbstring.ini
    – /etc/php/7.2/cli/conf.d/20-phar.ini
    – /etc/php/7.2/cli/conf.d/20-posix.ini
    – /etc/php/7.2/cli/conf.d/20-readline.ini
    – /etc/php/7.2/cli/conf.d/20-shmop.ini
    – /etc/php/7.2/cli/conf.d/20-sockets.ini
    – /etc/php/7.2/cli/conf.d/20-sysvmsg.ini
    – /etc/php/7.2/cli/conf.d/20-sysvsem.ini
    – /etc/php/7.2/cli/conf.d/20-sysvshm.ini
    – /etc/php/7.2/cli/conf.d/20-tokenizer.ini
    j ai esseyer d activer les extensions en enlever les ; dans le fichier php.ini mais ca marche toujours pas

    • adel

      j ai pus regle le proleme mais au lancement de la page principale il m affiche
      /*
      Fatal error: Uncaught Error: Call to undefined function Symfony\Polyfill\Mbstring\iconv_strpos() in /var/www/html/laravel/vendor/symfony/polyfill-mbstring/Mbstring.php:490 Stack trace: #0 /var/www/html/laravel/vendor/symfony/polyfill-mbstring/bootstrap.php(34): Symfony\Polyfill\Mbstring\Mbstring::mb_strpos(NULL, ‘/json’, 0, ‘UTF-8’) #1 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Support/Str.php(107): mb_strpos(NULL, ‘/json’) #2 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php(34): Illuminate\Support\Str::contains(NULL, Array) #3 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Http/Request.php(339): Illuminate\Http\Request->isJson() #4 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Http/Request.php(400): Illuminate\Http\Request->getInputSource() #5 /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Http/Request.php(59): Illuminate\Http\Request::createFromBase(Object(Illuminate\Http\Request)) #6 /var/www/html/l in /var/www/html/laravel/vendor/symfony/polyfill-mbstring/Mbstring.php on line 490
      */
      aidez moi svp

  • adel

    bonjour mesieur
    d abord je vous remercie infiniment pour ce formidable tuto qui est a la hauteur de sont titre « un framework qui rend heureux »
    je voudrais vous poser une question si cela nous vous derange pas ,j ai installer laravel via composer avec la commande create-project mais lorsque je me suis connecter au serveur : localhost/laravel5/public ,il m affiche l erreur(Exception) suivante:
    Exception
    DateTime::__construct(): Failed to parse time string (2018-03-11 13:18:28.-523144) at position 24 (1): Unexpected character

    code:
    parent::__construct($time, $timezone);

    en attandant une reponse de votre part je vous remercie infiniment

    • bestmomo

      Bonjour,

      Il faudrait commencer par regarder si tous les prérequis pour Laravel sont bons :

      PHP >= 7.1.3
      OpenSSL PHP Extension
      PDO PHP Extension
      Mbstring PHP Extension
      Tokenizer PHP Extension
      XML PHP Extension
      Ctype PHP Extension
      JSON PHP Extension

  • carruno

    Bonjour Bestmomo, le meilleur site francophone pour apprendre ce fabuleux framework.

    A propos de cet exemple de Blog, tu as fait le choix d’utiliser un champ « ENUM » pour la gestion des rôles sur les utilisateurs. Ce qui me chagrine dans ce choix c’est que lorsqu’on veut en ajouter un il faut modifier la structure de la base et donc faire des manipulations pour vider et re-remplir les données.

    J’aimerais connaitre ton point de vue pour passer plutôt par une table « roles » et une table intermédiaire « users_roles » avec un champ role_id dans la table users.

    Quelle serait la méthode la plus propre pour fonctionner comme ça?
    Il me semble que la méthode $user = $request->user(); récupère les informations de la table users, et donc ce qui nous intéresse $user->role mais comment utiliser la même méthoe avec une jointure de table pour gérer le cas que je cite?

    Merciiii

    • bestmomo

      Bonjour,

      Merci pour les encouragement 🙂

      En ce qui concerne les rôles j’ai fait un truc simple dans l’exemple pour ne pas trop l’alourdir mais du coup ce n’est pas facilement modifiable.

      Pour mettre en place un système plus souple et paramétrable il vaut mieux passer par un package existant (il y en a de nombreux). Voici un article en anglais qui décrit les deux principaux.

      • carruno

        Effectivement ces 2 packages m’ont l’air très intéressant et vont bien plus loin que ce que je comptais faire. Merci pour ce lien

        Et juste par curiosité, si je veux utiliser une méthode qui accède non pas à la table seule ($request->user();), mais à plusieurs tables jointes, quelle serait la meilleure approche selon toi?

  • jjabrane

    Bonjour,
    J’aimerais bien de te remercier tout d’abord pour ce jolie blog codé avec laravel , il est très bien expliqué, il m’a beaucoup aidé à comprendre laravel 5.1.
    Est ce que vous pouvez nous écrire quelques choses sur la démarche de développement du même blog mais avec laravel 5.2 et angularJS .
    Merci Beaucoup pour les articles 🙂

    • bestmomo

      Bonjour et merci !

      Il serait effectivement intéressant de faire une version du blog avec un framework côté client. Est-ce que Angular est la meilleure option ? Je ne sais pas parce qu’on a un grand choix de ce côté là ! Je n’ai pas encore exploré les nouveautés de la version 2, peut-être qu’il gagne en simplicité parce que ce n’est pas actuellement son point fort.

  • jjabrane

    Bonsoir,
    Je vous remercie énormément pour tous les articles publiés, ils sont très intéressant et utiles,
    j’ai appris beaucoup des trucs à travers ton site , vraiment merci beaucoup pour ses jolies publications.
    j’aimerais bien si vous publiez quelques trucs a propos de l’intégration et la création de ce même jolie blog mais avec les deux frameworks angularJs(front-end) et laravel 5.2(backend).
    Avec tous mes remerciements et respects.

  • bonhoph

    bonjour,

    bravo pour le travail d’écriture, simple et efficace!

    Petit bug trouvé mais qui ne concerne pas directement vos tutos, il s’agit du htaccess de filemanager.

    en mode fastCGI => « php_flag engine off » , et tout ce qui est « php_* » n’est plus reconnu et soulève une erreur apache. Pas pratique si il faut gérer ça à la main à chaque installation.

    en tout cas, good job, peu être des idées à vous soumettre, concernant la partie Ajax, je n’en dit pas plus…

    cordialement

  • Dounou

    Bonjour,
    Je suis encore débutant avec le Framework, mais grâce à votre Tuto sur Laravel 4, j’ai pu créer facilement une application.
    Actuellement, en travaillant avec Laravel 5 et toujours avec votre Tuto, j’ai constate qu’on utilise beaucoup les Repositories, mais je ne vois pas trop quelles sont les avantages. Pourriez-vous donc expliquer un peu les intérêts de cette méthode ?
    Merci d’avance

    • bestmomo

      Bonjour,

      Un sain principe de base est de d’attribuer à chaque classe une tâche unique. Ainsi un contrôleur a pour travail de recevoir une requête et d’envoyer une réponse. Pour la mise en forme de la réponse il est judicieux de déléguer les différentes tâches, en particulier la gestion des données. Le rôle d’un repository est justement de gérer des données, on doit juste avoir à lui dire : « garde ça en mémoire », « retrouve moi telle information », etc…

      Mais il n’y a rien d’impératif dans cette organisation du code. Toutefois c’est le résultat de la réflexion de nombreux développeurs au cours de pas mal d’années 😉

      Concernant les tutoriaux sur Laravel 5 j’en ai un très détaillé qui va sortir le 12 mai sur le site OpenClassRooms.

      Cordialement,

      Maurice.

  • yannickfogang

    Bonsoir à vous j’ai juste un petit soucis avec les sources de laravel5-exemple lorsque je l’install ayant suivi toutes les étapes j’ai une page blanche lorsque j’accède à l’url projectname/public. A noter que je suis sur ubuntu 14.

Laisser un commentaire