Drupal 8の場合、サイドバーメニューのブロックでフィルターをカスタマイズします。ユーザーがブロックのオプションをクリックすると、ユーザーの選択をURLに渡す必要があります。
$this->args = \Drupal::request()->query->all();
$args[$id] = $value;
$url = $this->url = Url::fromRoute('<current>');
$url->setOptions(array('query' => $args));
$link = '<a href="' . $url->toString() . '">' . $label . '</a>';
そして最後に、私のURLは次のようになります
drupal/page_view?content_type=type
しかし、私は私のようなURLが必要です
drupal/page_view?content_type%5Btype%5D=type
コードを変更する方法を知っていますか?
あなたはコードを試します:
$options = ['absolute' => TRUE];
$url = Url::fromRoute('entity.node.canonical', ['node' => 526,'destination'=>'router_back'], $options);
$link = Link::fromTextAndUrl('Here is the link', $url)->toString();
結果リンク:node/526?destination=router_back
もっと見る rl :: fromRoute
$args
が以下のような配列であるとしましょう:
$args['content_type'] = 'type';
次に、単に$id to $args
を与えるのではなく、type
を追加する必要があります
$args['content_type'] = ['type' => '123'];
次に、全体的なクエリは次のようになります。
$this->args = \Drupal::request()->query->all();
$this->args = [$id => $value];
$url = $this->url = Url::fromRoute('<current>');
$url->setOptions(array('query' => $args));
$link = '<a href="' . $url->toString() . '">' . $label . '</a>';