Puncte:1

Cum upcast parametrii rutei pentru entity_revision?

drapel pl

Entitatea mea personalizată este revizuibilă. Pot vedea revizuirile, dar formularul meu de restituire a revizuirii nu funcționează. Traseul pentru formular este definit în msul_rovi_games.routing.yml.

entity.rovi_game.revision_revert_confirm:
  cale: „/rovi_game/{rovi_game}/revisions/{rovi_game_revision}/revert”
  implicite:
    _title: „Reveniți la o revizuire anterioară”
    _form: „\Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm”
  cerinte:
    _permission: „administer rovi_game entities”
    rovi_game: \d+
  Opțiuni:
    _ruta_de_operare_nod: ADEVĂRAT
    rovi_game:
      tip: entitate:rovi_game
    rovi_game_revision:
      tip: entity_revision:rovi_game

Forma este definită în src/Form/RoviGameRevisionRevertForm.php.

spațiu de nume Drupal\msul_rovi_games\Form;

utilizați Drupal\Component\Datetime\TimeInterface;
utilizați Drupal\Core\Datetime\DateFormatterInterface;
utilizați Drupal\Core\Entity\EntityRepositoryInterface;
utilizați Drupal\Core\Entity\Sql\SqlContentEntityStorage;
utilizați Drupal\Core\Entity\EntityStorageInterface;
utilizați Drupal\Core\Form\ConfirmFormBase;
utilizați Drupal\Core\Form\FormStateInterface;
utilizați Drupal\Core\Url;
utilizați Drupal\msul_rovi_games\Entity\RoviGameInterface;
utilizați Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Oferă un formular pentru anularea unei versiuni rovi_game.
 *
 * @intern
 */
clasa RoviGameRevisionRevertForm extinde ConfirmFormBase {

  /**
   * {@inheritdoc}
   */
  funcția publică buildForm(array $form, FormStateInterface $form_state, RoviGameInterface $rovi_game_revision = NULL) {
    $this->revision = $rovi_game_revision;
    $form = parent::buildForm($form, $form_state);

    returnează $form;
  }
}

Când încerc să revin, primesc următoarea eroare.

TypeError: Argumentul 3 a fost transmis la Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm::buildForm() trebuie să implementeze interfața Drupal\msul_rovi_games\Entity\RoviGameInterface sau să fie nul, șirul dat în Drupal\msul_rovi_games\RebuildForm1(1) din /opt/drupal/web/modules/custom/msul_rovi_games/src/Form/RoviGameRevisionRevertForm.php)

Ce îmi lipsește?

Puncte:4
drapel in

Îți lipsește doar un nivel, „parametri”, din matricea de opțiuni. Vedea Upcasting opțiuni pentru numele slug-ului rutei. Rețineți că parametrii trebuie să fie imbricați sub opțiuni > parametri.

foobar.view:
  cale: '/foobar/{foobar_placeholder}'
  implicite:
    _controller: „\Drupal\foobar\Controller\Foobar::content”
    _title: „Oh, da foobar”
  Opțiuni:
    parametri:
      foobar_placeholder:
        tip: entitate:foobar

Codul dvs. a fost actualizat:

entity.rovi_game.revision_revert_confirm:
  cale: „/rovi_game/{rovi_game}/revisions/{rovi_game_revision}/revert”
  implicite:
    _title: „Reveniți la o revizuire anterioară”
    _form: „\Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm”
  cerinte:
    _permission: „administer rovi_game entities”
    rovi_game: \d+
  Opțiuni:
    _ruta_de_operare_nod: ADEVĂRAT
    # Cuib parametrii sub „parametri”
    parametri:
      rovi_game:
        tip: entitate:rovi_game
      rovi_game_revision:
        tip: entity_revision:rovi_game

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.