Symfony2无法找到路径控制器

时间:2014-02-12 20:18:27

标签: php symfony routes

我对这个问题的所有研究都让我一无所获:

我仍然有这个错误:无法找到路径“/ blog / 1”的控制器。也许你忘了在你的路由配置中添加匹配路由了吗?,每次使用BlogBu​​ndle的这条路线

blog_index:
    path:    /{page}
    defaults: { _controller: PathBlogBundle:Blog:index, page: 1 }
    requirements:
        page:  "\d*"
        _method:  GET

blog_see:
    path:    /article/{id}
    defaults: { _controller: PathBlogBundle:Blog:voir }
    requirements:
        id:  "\d+"
        _method:  GET

blog_add:
    path:    /add
    defaults: { _controller: PathBlogBundle:Blog:ajouter }
    requirements:
        _method:  POST

blog_update:
    path:    /update/{id}
    defaults: { _controller: PathBlogBundle:Blog:modifier }
    requirements:
        id:  "\d+"
        _method:  GET

blog_delete:
    path:    /delete/{id}
    defaults: { _controller: PathBlogBundle:Blog:supprimer }
    requirements:
        id:  "\d+"
        _method:  GET

以下是应用程序之一:

default:
    resource: "@PathBlogBundle/Resources/config/routing.yml"
    prefix:    /

path:
    resource: "@PathBlogBundle/Resources/config/routing.yml"
    prefix:    /blog

3 个答案:

答案 0 :(得分:0)

您的问题很可能出在app / config / config.yml文件中。您似乎有两个不同的配置指向同一个资源而不是一个。

default:
    resource: "@PathBlogBundle/Resources/config/routing.yml"
    prefix:    /

DagomaBlogBundle:
    resource: "@PathBlogBundle/Resources/config/routing.yml"
    prefix:    /blog

Symfony查看第一个配置,即

default:
    resource: "@PathBlogBundle/Resources/config/routing.yml"
    prefix:    /

尝试删除前缀为path /并刷新的配置。

答案 1 :(得分:0)

app/config/routing.yml注释掉导入的路由文件(用于测试)。加上这个:

blog_index:
    path:    /blog/{page}
    defaults: { _controller: PathBlogBundle:Blog:index, page: 1 }
    requirements:
        page:  \d+
        _method:  GET

如果这样可行,那么您就知道问题在于如何导入yml文件。如果这不起作用,那么某处必须有更深层次的问题。

更新:

app/config/routing.yml

中添加以下内容
path:
    resource: "@PathBlogBundle/Resources/config/routing.yml"
    prefix:    /blog

答案 2 :(得分:0)

通过删除路线中{}附近的额外空格解决了这个问题。