2

私は最も奇妙な問題を抱えています。すべてが順調に進み、突然 symfony が表示されるようになりました

"No route found for "GET /"

だから私はルーターをチェックしました..私のコントローラーからのルートはそこにありませんでした。

だから私はルーティングをrouting.ymlに追加しましたが、今はそれがスローされます

An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "_edit_user" as such route does not exist.") in C:\xampp\htdocs\zadanie\src\Cart\Bundle/Resources/views/User/index.html.twig at line 2

「_edit_user」という名前のアクションは、ルーティングから呼び出されているアクションのすぐ下にあります。

一体何が起こっているのですか?

編集: これがrouter:debugの内容です:

_wdt                     ANY    ANY    ANY  /_wdt/{token}
_profiler_home           ANY    ANY    ANY  /_profiler/
_profiler_search         ANY    ANY    ANY  /_profiler/search
_profiler_search_bar     ANY    ANY    ANY  /_profiler/search_bar
_profiler_purge          ANY    ANY    ANY  /_profiler/purge
_profiler_info           ANY    ANY    ANY  /_profiler/info/{about}
_profiler_import         ANY    ANY    ANY  /_profiler/import
_profiler_export         ANY    ANY    ANY  /_profiler/export/{token}.txt
_profiler_phpinfo        ANY    ANY    ANY  /_profiler/phpinfo
_profiler_search_results ANY    ANY    ANY  /_profiler/{token}/search/results
_profiler                ANY    ANY    ANY  /_profiler/{token}
_profiler_router         ANY    ANY    ANY  /_profiler/{token}/router
_profiler_exception      ANY    ANY    ANY  /_profiler/{token}/exception
_profiler_exception_css  ANY    ANY    ANY  /_profiler/{token}/exception.css
_configurator_home       ANY    ANY    ANY  /_configurator/
_configurator_step       ANY    ANY    ANY  /_configurator/step/{index}
_configurator_final      ANY    ANY    ANY  /_configurator/final
blog_show                ANY    ANY    ANY  /

blog_show は、routing.yml に追加したものです。

4

1 に答える 1

3

Symfony2 は、アクション メソッドをルーティング名に自動マップしません。アクション メソッドをルーティング可能にする必要がある場合は、明示的に指定する必要があります。

私は個人的にルーティングにアノテーションを使用するのが好きなので、同じことをしたい場合は、最初にこれをapp/config/routing.ymlに追加します

YourBundle:
    resource: "@YourBundle/Controller/"
    type:     annotation
    prefix:   /

次に、ルーティング情報をコントローラーに追加します。例としてデフォルトのコントローラを使用するには:

src/Your/Bundle/Controller/DefaultController.php

<?php

namespace Your\Bundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class DefaultController extends Controller
{
  /**
   * @Route("desired/edit_user/uri", name="_edit_user")
   */
  public function _edit_userAction()
  {
    /* ... */
  }
}
于 2013-11-05T18:51:25.277 に答える