【问题标题】:In Symfony, how can I use the url_for helper in a class?在 Symfony 中,如何在类中使用 url_for 助手?
【发布时间】:2010-11-01 16:06:56
【问题描述】:

我正在一个类中构建一个 URL,如果以后有必要,我希望能够通过更改 routing.yml 文件来更改路由。

如果我有路线:

userSignup:
  url:   /user/signup
  param: { module: user, action: signup }

如何在类中使用 url_for('userSignup') 帮助器来动态创建 URL?

【问题讨论】:

    标签: symfony1 routing symfony-1.4 helper


    【解决方案1】:

    您无需在操作中使用视图助手来生成 url:

    $this->generateUrl("userSignup");
    

    该方法在sfComponent.class.php 中定义。这是推荐的方法,而不是加载视图助手并使用它们的 hacky 解决方法。

    【讨论】:

      【解决方案2】:

      我只用 1.2 尝试过这个,所以我不能代表任何以前的版本......

      来自您的任何班级:

      sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));
      

      ...然后您可以继续使用 url helper 中定义的任何函数。

      【讨论】:

      • 是的,这就像 1.2 中的魅力。但我确实得到了—— sfLoader::loadHelpers() 方法已被弃用。请使用与 sfApplicationConfiguration 相同的方法。
      【解决方案3】:

      你应该使用

      sfLoader::loadHelpers(array('Url'));
      

      【讨论】:

        【解决方案4】:

        您不应该使用sfContext::getInstance() 来检索配置。

        // instead of using
        sfContext::getInstance()->getConfiguration()->loadHelpers('Url');
        
        // use 
        sfApplicationConfiguration::getActive()->loadHelpers(array('Url'));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-25
          • 1970-01-01
          • 2011-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多