Рейтинг:0

Получить URL-адрес объекта, а не его псевдоним пути

флаг cn

Как я могу получить URL-адрес объекта без его псевдонима?

Этот код просто дает мне псевдоним пути, но на самом деле я хочу, например, /en/node/1 вместо /en/node/my-title.

$entity->toUrl('canonical', ['absolute' => true, language' => $entity->language()])
  -> toString (истина)
  ->getGeneratedUrl());
Рейтинг:3
флаг ng

Вы можете добавить опцию 'псевдоним' => ИСТИНА к вашему маршруту. Посмотрите, как короткая ссылка тестируется в ядре

  // \Drupal\Tests\node\Functional\NodeViewTest
  общедоступная функция testLinkHeader() {
    $node = $this->drupalCreateNode();

    $ ожидаемое = [
      '<' . Html::escape($node->toUrl('canonical')->setAbsolute()->toString()) . '>; отн = "канонический"',
      '<' . Html::escape($node->toUrl('canonical', ['alias' => TRUE])->setAbsolute()->toString()) . '>; отн = "короткая ссылка"',
    ];

    $this->drupalGet($node->toUrl());

    $links = $this->getSession()->getResponseHeaders()['Link'];
    $this->assertEquals($expected, $links);
  }
флаг cn
Да, все работает, спасибо большое :-)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.