2015-12-28 73 views
9

我想在檢索URLLink field標題值的Drupal 8從Drupal 8的鏈接字段中提取URL和標題?

在我的自定義控制,我檢索與節點:

$storage = \Drupal::entityManager()->getStorage('node'); 
$nids = $storage->getQuery() 
    ->condition('type', 'partners') 
    ->condition('status', 1) 
    ->execute(); 

$partners = $storage->loadMultiple($nids); 

當我循環throught我的所有節點,預處理瓦爾我會給我的看法,我想找回URL標題

foreach ($partners as $key => $partner) { 
    $variables['partners'][] = array(
     'image' => $partner->field_logo->entity->url(), 
     'url' => $partner->field_link->value, // Can't retrieve values of link field 
    ); 
} 

不幸的是,我沒有找到如何檢索URL標題FIELD_LINK

感謝您的幫助。

回答

16

在節點級,你的嫩枝模板中,你可以使用:

{{ content.field_link.0['#url'] }} & {{ content.field_link.0['#title'] }}

例如:

<a href="{{ content.field_link.0['#url'] }}">{{ content.field_link.0['#title'] }}</a>

field_link是有問題的鏈接字段的名稱。

+0

我已經覆蓋'views-view-fields.html.twig',我想從'title'中提取'URL'部分並將其分配給單獨的鏈接。我嘗試了兩種狂野的暗示:'{{fields.title.content.0 ['#url']}}'和'{{fields.title.content ['#url']}}'。然而,這些工作都沒有:)我怎麼能做到這一點? –

+0

我想你需要''渲染'這個字段,這似乎對我有用:'{{fields.title.content.0 ['#url'] | render}}'獲取實際的URL – bdanin

5

我只是找到了解決辦法...

$partner->field_lien->uri // The url 
$partner->field_lien->title // The title 

我不好,希望它可以幫助別人。

+1

我怎樣才能使用URI語法枝杈? –

+1

@FredK對於樹枝:'$ partner.field_lien.uri' – Andrea

+3

+1,但你到底知道這些信息? 是否有任何文檔可以找到每種字段的每個屬性的列表。例如:link> uri/title/...,text> value? –

4

只是捎帶以上,如果你有一個外部鏈接,

$node->field_name->uri 

會給你的網址,但如果它是一個內部,你可能需要調整多一點:

use Drupal\Core\Url; 

$mylink = Url::fromUri($node->field_name[0]->uri); 
$mylink->toString(); 
+1

感謝您的貢獻。 事實上,你可以通過** $ node-> field_name-> entity-> url()來檢索直接url; ** 希望我能幫到你。 –

0

這一個對我的作品在樹枝:

content.field_link_name.0['#title']  // title 
content.field_link_name.0['#url_title'] // url value 

*您應該使用: 「單獨的鏈接文字和網址」 窗口小部件中顯示

1

更新爲Drupal 8

,以便獲得url所有你需要做的是:

{{ content.field_link_name[0]['#url'] }} 

要獲取鏈接文本:

{{ content.field_link_name[0]['#title'] }} 
0

我正在爲ECK字段做這個鏈接分離,這個解決方案真的幫了我很大忙。我已經更新了ECK域代碼在樹枝文件應用內嵌樣式是這樣的:

<a style="color: {{ entity.field_link_color[0] }};" href="{{ entity.field_link[0]['#url'] }}"> {{ entity.field_link[0]['#title'] }} </a>

要獲取網址:
{{ entity.field_link[0]['#url'] }}

要獲取鏈接標題:
{{ entity.field_link[0]['#title'] }}

0

您可以直接在樹枝模板中渲染鏈接字段的URI或文本。在一個節點的情況下,你可以將樹枝模板文件中使用下列任一(假設你的鏈接場的機器名是field_link):

{{ node.field_link.uri }} 

{{ node.field_link.title }}