Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur avec Silex ~2.0

Suivi du cours Evoluez vers une structue PHP professionnelle

Sujet résolu
    9 septembre 2016 à 19:46:54

    Bonsoir,

    Je suis scrupuleusement ce cour. Je suis désormais face à un problème au niveau de cette partie : https://openclassrooms.com/courses/evoluez-vers-une-architecture-php-professionnelle/iteration-8-gestion-de-la-securite

    J'en suis à la fin de cette itération, mon site fonctionne bien mise à part losrque je clic sur "Log in"  j'obtiens cette erreur :

    RuntimeException in ArgumentResolver.php line 82: Controller "Closure" requires that you provide a value for the "$request" argument 
    (because there is no default value or because there is a non optional argument after this one). in ArgumentResolver.php line 82 at ArgumentResolver->getArguments(object(Request), object(Closure)) in HttpKernel.php line 145 at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 68 at HttpKernel->handle(object(Request), '1', true) in Application.php line 496 at Application->handle(object(Request)) in Application.php line 477 at Application->run() in index.php line 11


    A noter que contrairement au cours je suis sous les dernières version de Silex, Twig, Bootstrap...

    Mon code est quasi le même que celui du cours. Mise à part deux trois lignes qui changes pour s'adapter aux nouvelles versions.

    Le problème viendrait il de ce fichier : route.php

    <?php
    
    // Home page
    $app->get('/', function () use ($app) {
        $articles = $app['dao.article']->findAll();
        return $app['twig']->render('index.html.twig', array('articles' => $articles));
    })->bind('home');
    
    // Article details with comments
    $app->get('/article/{id}', function ($id) use ($app) {
        $article = $app['dao.article']->find($id);
        $comments = $app['dao.comment']->findAllByArticle($id);
        return $app['twig']->render('article.html.twig', array('article' => $article, 'comments' => $comments));
    })->bind('article');
    
    // Login form
    $app->get('/login', function(Request $request) use ($app) {
        return $app['twig']->render('login.html.twig', array(
            'error'         => $app['security.last_error']($request),
            'last_username' => $app['session']->get('_security.last_username'),
        ));
    })->bind('login');


     EDIT: Après des recherches dans la doc de silex sur la Securité j'ai résolu le problème en rajoutant

    use Symfony\Component\HttpFoundation\Request;

    dans route.php

    -
    Edité par Doums_ 10 septembre 2016 à 0:18:09

    • Partager sur Facebook
    • Partager sur Twitter
      1 mai 2017 à 16:11:45

      Je commente afin de faire remonter le post: j'ai eu le même problème en suivant le cours, et la réponse apportée dans l'EDIT a résolu mon pb. Merci beaucoup du partage!
      • Partager sur Facebook
      • Partager sur Twitter

      Erreur avec Silex ~2.0

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown