【问题标题】:Explanation for url() function Drupal 8url() 函数 Drupal 8 的解释
【发布时间】:2017-01-11 13:13:25
【问题描述】:

我对drupal 很陌生,必须做一些真正快速的小工作。在浏览https://www.drupal.org/docs/8/theming/twig/functions-in-twig-templates 的文档时,我看到url() 函数的字符串参数。

<a href="{{ url('view.frontpage.page_1') }}">{{ 'View all content'|t }}</a>

url() 的取值是多少?

事实上,我正在尝试获取相对路径。我用过

<a href="{{directory}}/solutions.html">Solutions</a>

但是,它对我不起作用,因为 {{directory}} 每次都更改并导致 url append。有没有最佳实践?谢谢你的建议。

【问题讨论】:

  • 是路由名称。要查看应用程序中的路由,请使用命令drupal router:debug。考虑在您的问题中切换到drupal.stackexchange.com
  • @malcolm 谢谢 :)

标签: symfony drupal drupal-theming drupal-8


【解决方案1】:

将 URL 添加到字符串中时,例如在文本描述中,core 建议我们使用 \Drupal\Core\Url 类。这有几个方便的方法:

基于路由的内部 URL - Url::fromRoute(),示例:Url::fromRoute('acquia_connector.settings') 基于路径的内部 URL - Url::fromInternalUri(),示例:Url::fromInternalUri('node/add') 外部 URL - Url::fromUri,示例:Url::fromUri('https://www.acquia.com') 最后两种方法非常相似,主要区别在于,fromInternalUri() 已经假定了一个'internal:' 前缀,它告诉Drupal 构建一个内部路径。值得一读的是支持哪些前缀,例如 ':entity' 前缀可以帮助构建动态 URI。

当您需要压缩链接并将其显示为文本时,您可以使用 toString() 方法:Url::fromRoute('acquia_connector.settings')->toString()。

如果您需要更多信息,请询问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    相关资源
    最近更新 更多