首页 > 解决方案 > Drupal 8 Url::FromRoute toString() 不要带大括号

问题描述

我想恢复一条路,URL::FromRoute 除了我在使用时有一些顾虑toString

$path = Url::fromRoute('my_route_name',['mypParamsId' =>  'MYPARAMSID'])->toString();

这样我找到了一条路,但它不是正确的

我希望我能恢复

$path = Url::fromRoute('my_route_name',['mypParamsId' =>  '{MYPARAMSID}'])->toString();

但是当我使用 toString 时它不起作用并且 Drupal 无法访问我的路由,如果我删除 String 它会将我的对象返回给我而不会出错

标签: phpurldrupal-8tostringbraces

解决方案


尝试这个:

$myurl = Url::fromRoute('my_route_name',['mypParamsId' =>  $theValue]);
$link = \Drupal::service(‘link_generator’)->generate(‘title’, $myurl);

然后打印 $myurl 因为,它实现了 _toString()

或者在第二行使用 Drupal\Core\Link

$url = Url::fromRoute('myrouteName', array(
          'My_id' => $item->id
    ));

$link= Link::fromTextAndUrl($item->id, $url);

推荐阅读