1

symfony を学びたいと思い、小さなアプリケーションの作成を開始しました。ルートについて質問です。だから、私は自分のプロジェクトにルートを持っています:

/admin/homepage/admin/newsadmin/galery

いいえ、 url に書き込むと/admin、このルートは存在せず、エラーが発生しますNo route found for "GET /admin/"。たとえば、ルートが存在しないかどうかを確認し、別のルートにリダイレクトする方法はありますか? 事前にThxと私の英語で申し訳ありません私のルート:

news_all:
path: /news/all/{page}
defaults: { _controller: AppAdminBundle:News:all, page: 1 }
requirements:
    page: \d+
    _method:  GET|POST
news_add:
path: /news/add
defaults: { _controller: AppAdminBundle:News:add }
4

2 に答える 2

0

Symfony のグッド プラクティスは、アノテーションを使用してコントローラーにルートを設定することです。

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

/**
* @Route("/news/add", name="news_add")
*/
public function addAction()
{
    // ...
}

また、アノテーションを使用すると、コントローラー全体のルートを設定できます。あなたの場合、これはあなたが探しているものです。

/**
* @Route("/admin")
*/
class NewsController extends Controller
{
    /**
     * @Route("/news/add", name="news_add")
     */
    public function addAction()
    {
        // ...
    }
}

また、@Template アノテーションをご覧になることをお勧めします。

それ以外の場合は、あなたの質問に答えるために、カスタム小枝関数を作成できると思います (詳細については、このリンクを確認してください)。指定された名前が有効なルートであることを確認する関数:

function routeExists($name)
{
    // I assume that you have a link to the container in your twig extension class
    $router = $this->container->get('router');
    return (null === $router->getRouteCollection()->get($name)) ? false : true;
}
于 2015-12-30T09:48:12.003 に答える