Php 如何处理基于路由的URL?

Php 如何处理基于路由的URL?,php,angularjs,symfony,symfony-2.3,Php,Angularjs,Symfony,Symfony 2.3,假设我们有一个实体集合,比如文章,我们需要生成一个包含特定文章对应URL的实体列表 如果我们没有使用angularjs,那么列表项可能看起来像(细枝): 但是,因为我使用的是angularjs,所以我不能使用这个解决方案,因为我在客户端迭代文章,并且没有访问服务器端url生成器的权限 我得出了两个结论: (我使用的那一个)我用id:0生成url,然后在angularjs控制器中用实际的id值替换0,它充当占位符 在服务器端生成URL数组并将其传递到angularjs 不过,我不太喜欢任何解

假设我们有一个实体集合,比如
文章
,我们需要生成一个包含特定文章对应URL的实体列表

如果我们没有使用angularjs,那么列表项可能看起来像(细枝):

  • 但是,因为我使用的是angularjs,所以我不能使用这个解决方案,因为我在客户端迭代文章,并且没有访问服务器端url生成器的权限

    我得出了两个结论:

  • (我使用的那一个)我用
    id:0
    生成url,然后在angularjs控制器中用实际的id值替换
    0
    ,它充当占位符

  • 在服务器端生成URL数组并将其传递到angularjs

  • 不过,我不太喜欢任何解决方案


    有更好的选择吗?

    您可以使用Symfony bundle之友。

    有这样的选择,或者您可以考虑创建一个自定义Javascript编译器,将模式替换为路由(可能是一个很棒的开源软件包)@Thomas Potaire:FOSJsRoutingBundle实际上是一个很好的答案。你知道FosRoutingBundle如何处理暴露路线的安全问题吗?anuser是否可以通过简化javascript中的搜索找到所有公开的路由?如果我在我的用户页面上,他会发现我的管理页面暴露吗?您可以设置路由是否暴露,请参阅。文档非常简单,用户不确定捆绑包中是否有更多功能。另一种方法是研究创建自定义JS编译器。
    <li>
        <a href="{{ path('article', {'id': article.id}) }}">{{ article.name }}</a>
    </li>