我正在自定义模块中的控制器中生成URL。我生成的URL是指向同一站点上的页面,而不是模块中的页面。我想将任意数量的子弹添加到基本URL的末尾。有些弹头依赖于来自其他API调用的返回值,因此无法预测有多少或它们将是什么。
我想要生成表单的$url变量:
'www.base-path-of-website.com'/any/number/of/arbitrary/slugs我试过使用:
Url::fromRoute() 但不知道如何从它得到网站的基本路线。或者如何添加任意的子弹。
这在Drupal 7和更早版本中是微不足道的,但我无法在Drupal 8中找到如何做到这一点。在Drupal 8中,如何从模块生成任意的内部URL?我该怎么做?
发布于 2016-07-21 06:15:04
来自用于Url::fromRoute()的Drupal文档
为具有Drupal路由的Url创建新的URL对象。此方法用于具有Drupal路由(即Drupal生成的大多数页面)的URL。对于相对于基本路径(如robots.txt)的非路由本地URI,请使用Url::fromUri()和base: path。
对于此方法,需要提供模块的.routing.yml文件中定义的路由名称,以及路由中的参数数组:
\Drupal\Core\Url::fromRoute('mymodule.my_route', array('route_param' => 'param_value'))->toString();或者,如果您没有插入的路由,可以使用Url::fromUri()作为指定的文档:
\Drupal\Core\Url::fromUri('base:/any/number/of/arbitrary/slugs',array('absolute' => TRUE))->toString();https://drupal.stackexchange.com/questions/207755
复制相似问题