IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Lumen, comment appeler ma route ?


Sujet :

Laravel PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut Lumen, comment appeler ma route ?
    Bonjour j'ai installé lumen, et je n'arrive à obtenir une route, voici mon test:

    lorsque je lance l'url :
    j'ai bien un affiche de la version:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Lumen (5.4.6) (Laravel Components 5.4.*)
    voici la page appelle (public/index.php)
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
     
    /*
    |--------------------------------------------------------------------------
    | Create The Application
    |--------------------------------------------------------------------------
    |
    | First we need to get an application instance. This creates an instance
    | of the application / container and bootstraps the application so it
    | is ready to receive HTTP / Console requests from the environment.
    |
    */
     
    $app = require __DIR__.'/../bootstrap/app.php';
     
    /*
    |--------------------------------------------------------------------------
    | Run The Application
    |--------------------------------------------------------------------------
    |
    | Once we have the application, we can handle the incoming request
    | through the kernel, and send the associated response back to
    | the client's browser allowing them to enjoy the creative
    | and wonderful application we have prepared for them.
    |
    */
    //$app->routes::get('/menuCours', 'MenuCours@Index');
     
    $app->run();
    dans le dossier route il y a un fichier route/web.php
    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
    17
    18
    19
    20
     
    <?php
     
    /*
    |--------------------------------------------------------------------------
    | Application Routes
    |--------------------------------------------------------------------------
    |
    | Here is where you can register all of the routes for an application.
    | It is a breeze. Simply tell Lumen the URIs it should respond to
    | and give it the Closure to call when that URI is requested.
    |
    */
     
    $app->get('/', function () use ($app) {
     
        return $app->version();
     
     
    });
    c'est lui qui donne la version de lumen,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $app->get('/', function () use ($app) {
     
        return $app->version();
     
     
    });
    maintenant j'ai ajouté une nouvelle route:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $app->get('/menuCours', 'MenuCours@Index');
    si j'appelle l'url "/public/menuCours" j'ai "no found", même chose avec la route "/menuCours".

    Comment je dois précéder pour obtenir cette route ? j'aimerais faire une requête ajax depuis une machine client qui appelle directement l'url menuCours ?

    merci de vos réponses.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,

    Je te conseilles la lecture du tuto sur Laravel, pour bien comprendre comment prendre en main ce fmk.

    Dans ton cas tu fais une légère erreur, ta routes devrais être.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $app->get('/menuCours', 'MenuCoursController@Index');
    et dans app/Http/Controllers/ tu crées le fichier MenuCoursController qui reprend une méthode index.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    Merci de ta réponse,
    le problème c'est que si vais dans le dossier public et que je lance la commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php  -S localhost:8000
    la route fonctionne, mais si je veux depuis lancer une requête ajax depuis un autre pc client , cela ne fonctionne pas.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Et si plutôt tu fais à la racine ?


  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci de ta commande

    j'ai testé:
    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
    17
     
     
     
     
    #0 //var/www/html/test/mdlrest/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessi                                                                   ngHandler.php(37): Monolog\Handler\StreamHandler->write(Array)
    #1 //var/www/html/test/mdlrest/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog                                                                   \Handler\AbstractProcessingHandler->handle(Array)
    #2 //var/www/html/test/mdlrest/vendor/monolog/monolog/src/Monolog/Logger.php(616): Monolog                                                                   \Logger->addRecord(400, Object(UnexpectedValueException), Array)
    #3 //var/www/html/test/mdlrest/vendor/laravel/lumen-framework/src/Exceptions/Handler.php(4                                                                   5): Monolog\Logger->error(Object(UnexpectedValueException))
    #4 //var/www/html/test/mdlrest/app/Exceptions/Handler.php(36): Laravel\Lumen\Exceptions\Ha                                                                   ndler->report(Object(UnexpectedValueException))
    #5 //var/www/html/test/mdlrest/vendor/laravel/lumen-framework/src/Concerns/RegistersExcept                                                                    in //var/www/html/test/mdlrest/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.p                                                                   hp on line 107
    PHP Fatal error:  Uncaught UnexpectedValueException: The stream or file " //var/www/html/test/storage/logs/lumen.log" could not be opened: failed to open stream: P                                                                   ermission denied in //var/www/html/test/mdlrest/vendor/monolog/monolog/src/Monolog/Handler                                                                   /StreamHandler.php:107
    Stack trace:
    #0 //var/www/html/test/mdlrest/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessi                                                                   ngHandler.php(37): Monolog\Handler\StreamHandler->write(Array)
    #1 //var/www/html/test/mdlrest/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog                                                                   \Handler\AbstractProcessingHandler->handle(Array)
    #2 //var/www/html/test/mdlrest/vendor/monolog/monolog/src/Monolog/Logger.php(616): Monolog                                                                   \Logger->addRecord(400, Object(Symfony\Component\Debug\Exception\FatalErrorExcep                                                                   tion), Array)
    #3 //var/www/html/test/mdlrest/vendor/laravel/lumen-framework/src/Exceptions/Handler.php(4                                                                   5): Monolog\Logger->error(Object(Symfony\Component\Debug\Exception\FatalErrorExc                                                                   eption))
    #4 //var/www/html/test/mdlrest/app/Exceptions/Handler.php(36): Laravel\Lumen\Exceptions\Ha
    j'essayer de trouver de la doc sur "php -S".

    J'ai pu me dépatoger en configurant apache et un proxpass

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Si jamais ton erreur là est un problème de droits de ton répertoire storage

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    voici les droits de storages:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    drwxr-xr-x  5 www-data www-data   4096 mai   23 07:18 storage
    j'ai tenter de faire un chmod -R 777 storage
    puis un php artisan serve
    j'ai l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Command "serve" is not defined
    je pense que Lumen ne n' a pas charger cette commande.

  8. #8
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Lumen ne possède pas les commandes d'Artisan, qui sont propres à Laravel.

    Tu dois le faire fonctionner avec le serveur interne de PHP "php -S localhost:8000 -t public" (à exécuter depuis la racine de ton projet, pas depuis le répertoire public) mais je pense qu'il te faudra à chaque fois le relancer si tu changes des routes ou en ajoutent.
    Le mieux serait de le faire tourner derrière un apache ou nginx pour être tranquille.

    Bien à toi,
    Pensez à mettre comme si c'est le cas !

  9. #9
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Heu si, Lumen dispose de Artsan https://github.com/laravel/lumen

  10. #10
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Toutes les commandes d'Artisan utilisé dans Laravel ne font pas partie des commandes de base de Lumen, entres-autres serve, ci-dessous voici la liste des commandes de Lumen 5.4.6 (dernière version à ce jour) :

    Nom : lumen_commands.png
Affichages : 625
Taille : 143,1 Ko
    Pensez à mettre comme si c'est le cas !

Discussions similaires

  1. Comment appeler une fonction JavaScript depuis Delphi ?
    Par Alfred12 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 17/06/2005, 18h15
  2. comment appeler une procédure événementielle
    Par OutOfRange dans le forum Débuter
    Réponses: 8
    Dernier message: 03/06/2005, 19h32
  3. Comment appeller un ActiveX de type Exe en JAVASCRIPT ?
    Par mandarindi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/03/2005, 09h57
  4. Comment appeler des API windows en C ?
    Par JuanLopez1966 dans le forum Windows
    Réponses: 6
    Dernier message: 22/12/2004, 10h34
  5. PRocédure stocké, comment appeler avec delphi?
    Par SkyDev dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/04/2004, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo