2017-09-15 10 views
1

私はsymfonyのopenclassroomsのチュートリアルに従っています。私は現在、 "Les controleurs avec Symfony"の章にいます。Symfony Component HttpKernel Exception NotFoundHttpException

私はAdvertController.phpから来て、エラーが疑われるhttp://localhost/Symfony/web/app_dev.phpを開いて、このエラーに

NotFoundHttpException

を取得しよう。 しかし、チュートリアルのコードと比較しました。そしてそれはまったく同じです。キャッシュを削除しようとしましたが、機能しません。私はもう一つ質問をします。ここで

はAdvertController.phpコードは次のとおりです。

<?php 
//src/Neo/PlatformBundle/Controller/AdvertController.php 
namespace Neo\PlatformBundle\Controller; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Response; 
//use Symfony\Component\Routing\Generator\UrlGeneratorInterface; 


class AdvertController extends Controller 
{ 
    public function indexAction() 
    { 
     $url= $this->get('router')->generate(
    'neo_platform_view', //first argument : path name 
    array('id' => 5) 
); 
    return new Response("The url of the announcement is:".$url); 
} 

public function viewAction($id) 
{ 
    return new Response("Desplay of the announcment with id:".$id); 
} 

public function viewSlugAction($slug, $year, $_format) 

    { 

     return new Response(

      "We could desplay the announcment conrresponding the the slug   
'".$slug."', created in ".$year." and with the format ".$_format."." 

     ); 

     } 


} 



?> 

あなたは私のコードの他の部分を投稿したい場合、私に知らせてください。 私はどこを見てもわかりません。

ありがとうございました!

答えて

0

メッセージのエラーは非常に明示的です。「/」のルートはありません。 routing.ymlを確認してみてください

+0

こんにちは!コメントありがとうございました。私は実際にapp/config/routing.ymlをチェックしました:私は書いていました:prefix:/ platformこの理由から、Rersources/config/routing.ymlは/ {page}ではなくpath:/ {page} 。私はチュートリアルのように正確にやっています。どうすればこの問題を解決できますか?どうもありがとう! –

0

php bin/console debug:routerまたはapp/console(symfony < 3.0)のルートをダンプして、目的のパスがあるかどうかを調べることができます。 接頭辞/プラットフォームがある場合、コントローラ内のパスは/ pathではなく/ platform/pathになります。

ルートパスにはデフォルトルートが必要です。

+0

こんにちはLerminou!あなたが言ったコマンドを試しましたが、私はこのメッセージを受け取りました:入力ファイルを開くことができませんでした:bin/console また、app/config/routing.ymlに私はprefix:/ platformとして定義されたデフォルトルートを持っています。実際には、私はここで私の問題を解決することができますhttps://stackoverflow.com/questions/46240068/symfony-component-routing-exception-invalidparametererexceptionしかし、私はデバッグ:ルータについて不思議です。どのように私のコンソールでそれを動作させるための任意のアイデア?おかげで –

+0

あなたのアプリケーションのルートパスにする必要があります。 symfony v2.Xをお持ちの場合は、 'bin/console'の代わりに' app/console'を使用する必要があります(他のコンソールコマンドと同じように起動してください) – Lerminou

+0

ありがとうLerminou。実際に私は自分のルートをルートパスに置く方法を知らない。私のSymfonyフォルダを開こうと思っているときは、gksudo nautilus/opt/lammp/htdocsをコンソールに表示して表示させる必要があります。この後、ターミナルウィンドウは他のコマンドを受け付けません。他のアクションを行うために別の端末ウィンドウを開く必要があります。私は別の投稿で別にこの質問をします。 –

関連する問題