- Drupal 8 Module Development
- Daniel Sipos
- 218字
- 2021-07-02 15:45:18
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);
推薦閱讀
- Qt 5 and OpenCV 4 Computer Vision Projects
- C語言程序設(shè)計(第2版)
- Mastering Python Networking
- Kotlin從基礎(chǔ)到實戰(zhàn)
- Android開發(fā):從0到1 (清華開發(fā)者書庫)
- Julia高性能科學(xué)計算(第2版)
- Java系統(tǒng)化項目開發(fā)教程
- 常用工具軟件立體化教程(微課版)
- Python全棧數(shù)據(jù)工程師養(yǎng)成攻略(視頻講解版)
- Mastering Linux Security and Hardening
- 快樂編程:青少年思維訓(xùn)練
- C/C++代碼調(diào)試的藝術(shù)(第2版)
- Building Apple Watch Projects
- Swift 2 Design Patterns
- Spring MVC Blueprints