web-dev-qa-db-ja.com

Drupal 8?

[〜#〜] url [〜#〜]Titleの値を取得しようとしています リンクフィールド inDrupal 8

カスタムコントローラーで、次のようにノードを取得します。

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

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

すべてのノードをループ処理して、ビューに渡す変数を前処理するために、[〜#〜] url [〜#〜]Titleを取得したい

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 [〜#〜]Title offield_link

ご協力いただきありがとうございます。

17
Kevin Wenger

ノードレベルで、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は、問題のリンクフィールドの名前です。

27
Mark Conroy

上記に便乗するために、外部リンクがある場合は、

$node->field_name->uri

URLを提供しますが、内部URLの場合は、もう少し調整する必要があります。

use Drupal\Core\Url;

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

私はちょうど解決策を見つけました...

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

私の悪い、それが誰かを助けることができることを願っています。

9
Kevin Wenger

twigテンプレートで、uriまたはリンクフィールドのテキストを直接レンダリングできます。ノードの場合、twigテンプレートファイル内で次のいずれかを使用できます(リンクフィールドのマシン名はfield_linkと仮定):

{{ node.field_link.uri }}

{{ node.field_link.title }} 
2
Benjen

Drupal 8で更新

URLを取得するには、次を実行するだけです。

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

リンクテキストを取得するには:

{{ content.field_link_name[0]['#title'] }}
1
Vishal Rao

もう1つの方法は、Views FieldsでURLを取得しようとしている場合、別のフィールドPath:Contentを追加することです

0
Jignesh Rawal

これは小枝で私のために働く:

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

*使用する必要があるのは、「リンクテキストとURLを分離」ウィジェットを表示することです

0
zanvidmar

私はECKフィールドに対してこのリンク分離を行っていますが、このソリューションは本当に役立ちました。 twig次のようなファイルでインラインスタイルを適用するためのECKフィールドのコードを更新しました。

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

URLを取得するには:
{{ entity.field_link[0]['#url'] }}

リンクのタイトルを取得するには:
{{ entity.field_link[0]['#title'] }}

0
Arti Prasad

ブロックでレンダリングした後、その中で使用されるリンクフィールドにアクセスしたい場合は、次のように使用できます。

0
Debasish