官术网_书友最值得收藏!

The link

Now that we have a Url object, we can use it to generate a link. We can do this in two ways:

  • Use the LinkGenerator service (named link_generator) and call its generate() method passing the link text and the Url object we have obtained. This will return a GeneratedLink object, which contains the actual string representation of the link, that is, the markup.
  • Use the Link class, which wraps a render element (we will talk more about render elements in the Theming chapter) to represent the link.

Let's take a look at an example of both, from start to finish.

Consider this example of generating a link using the service:

$url = Url::fromRoute('my_route', ['param_name' => $param_value]);
$link = \Drupal::service('link_generator')->generate('My link', $url);

We can then directly print $link because it implements the __toString() method.

Now, consider this example of generating a link using the Link class:

$url = Url::fromRoute('my_other_route');
$link = Link::fromTextAndUrl('My link', $url);

We now have $link as a Link object whose toRenderable() returns a render array of the #type => 'link'. Behind the scenes, at render time, it will also use the link generator to transform that into a link string.

If we have a Link object, we can also use the link generator ourselves to generate a link based on it:

$link = \Drupal::service('link_generator')->generateFromLink($linkObject);
主站蜘蛛池模板: 陆河县| 泾川县| 江都市| 张家港市| 延庆县| 西青区| 镇原县| 平顶山市| 如皋市| 克什克腾旗| 广丰县| 大兴区| 黔西县| 徐汇区| 昌邑市| 西宁市| 昌乐县| 湖南省| 即墨市| 纳雍县| 遵义市| 丹寨县| 读书| 兰西县| 太湖县| 登封市| 加查县| 嘉峪关市| 资溪县| 安远县| 遂川县| 松溪县| 勃利县| 平乐县| 合山市| 漯河市| 荣成市| 长泰县| 农安县| 保定市| 甘洛县|