Member 14043543 Ответов: 0

Php как добавить элемент в конце ссылки ?


У меня есть сайт с Drupal 8.6 и Commerce 2.10

Как добавить элемент в конце url-адреса ?

С помощью пользовательского модуля ниже текущий путь выглядит следующим образом :

https://www.domaine.com/store/3


В ссылке ниже я хочу добавить в конце ссылки /cgv

https://www.domaine.com/store/3/cgv

Вот мой пользовательский модуль :

<?php
    
    namespace Drupal\commerce_agree_cgv\Plugin\Commerce\CheckoutPane;
    
    use Drupal\Component\Serialization\Json;
    use Drupal\Core\Form\FormStateInterface;
    use Drupal\commerce_checkout\Plugin\Commerce\CheckoutPane\CheckoutPaneBase;
    use Drupal\commerce_checkout\Plugin\Commerce\CheckoutPane\CheckoutPaneInterface;
    use Drupal\Core\Link;
    
    /**
     * Provides the completion message pane.
     *
     * @CommerceCheckoutPane(
     *   id = "agree_cgv",
     *   label = @Translation("Agree CGV"),
     *   default_step = "review",
     * )
     */
    class AgreeCGV extends CheckoutPaneBase implements CheckoutPaneInterface {
    
      /**
       * {@inheritdoc}
       */
      public function buildPaneForm(array $pane_form, FormStateInterface $form_state, array &$complete_form) {
        $store_id = 3;
        $pane_form['#attached']['library'][] = 'core/drupal.dialog.ajax';
        $attributes = [
          'attributes' => [
            'class' => 'use-ajax',
            'data-dialog-type' => 'modal',
            'data-dialog-options' => Json::encode([
              'width' => 800,
            ]),
          ],
        ];
        $link = Link::createFromRoute(
          $this->t('the general terms and conditions of business'),
          'entity.commerce_store.canonical',
          ['commerce_store' => $store_id],
          $attributes
        )->toString();
        $pane_form['cgv'] = [
          '#type' => 'checkbox',
          '#default_value' => FALSE,
          '#title' => $this->t('I have read and accept @cgv.', ['@cgv' => $link]),
          '#required' => TRUE,
          '#weight' => $this->getWeight(),
        ];
        return $pane_form;
      }
    
    }


Что я уже пробовал:

I think you have to add something to the line below, but I do not know what:

$link = Link::createFromRoute(
  $this->t('the general terms and conditions of business'),
  'entity.commerce_store.canonical',
  ['commerce_store' => $store_id],
  $attributes
)->toString();


If I change with ['commerce_store' => $store_id, '/cgv'] the link is not corect /store/3?0=/cgv


Кто может мне помочь ?

Если я заменю :

['commerce_store' => $store_id, '/cgv'],


около :

['commerce_store' => $store_id. '/cgv'],


У меня есть эта ошибка в моих журналах :

Symfony\Component\Routing\Exception\InvalidParameterException : Parameter "commerce_store" for route "entity.commerce_store.canonical" must match "\d+" ("3/cgv" given) to generate a corresponding URL. dans Drupal\Core\Routing\UrlGenerator->doGenerate() (ligne 204 de /var/www/www-domaine-com/web/core/lib/Drupal/Core/Routing/UrlGenerator.php).

0 Ответов