Kev*_*ger 17 php drupal drupal-8
我试图检索URL和标题一个值链接字段中的Drupal 8.
在我的自定义控制器中,我检索节点:
$storage = \Drupal::entityManager()->getStorage('node');
$nids = $storage->getQuery()
->condition('type', 'partners')
->condition('status', 1)
->execute();
$partners = $storage->loadMultiple($nids);
Run Code Online (Sandbox Code Playgroud)
当我循环遍历所有节点时,为了预处理变量,我将提供给我的视图,我想检索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
);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有找到如何检索URL和标题的FIELD_LINK.
谢谢你的帮助.
小智 28
在节点级别,在Twig模板内,您可以使用:
{{ 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
是有问题的链接字段的名称.
我刚刚找到解决方案......
$partner->field_lien->uri // The url
$partner->field_lien->title // The title
Run Code Online (Sandbox Code Playgroud)
我的坏,希望它可以帮助某人.
小智 9
如果您有外部链接,只需捎带上面的内容,
$node->field_name->uri
Run Code Online (Sandbox Code Playgroud)
会给你一个URL,但如果它是一个内部你可能需要调整一点:
use Drupal\Core\Url;
$mylink = Url::fromUri($node->field_name[0]->uri);
$mylink->toString();
Run Code Online (Sandbox Code Playgroud)