Score:1

ฉันจะอัปคาสต์พารามิเตอร์เส้นทางสำหรับentity_revision ได้อย่างไร

ธง pl

เอนทิตีที่กำหนดเองของฉันสามารถแก้ไขได้ ฉันสามารถดูการแก้ไขได้ แต่แบบฟอร์มการยกเลิกการแก้ไขของฉันใช้งานไม่ได้ กำหนดเส้นทางสำหรับแบบฟอร์มใน msul_rovi_games.routing.yml.

entity.rovi_game.revision_revert_confirm:
  เส้นทาง: '/rovi_game/{rovi_game}/revisions/{rovi_game_revision}/revert'
  ค่าเริ่มต้น:
    _title: 'เปลี่ยนกลับเป็นรุ่นก่อนหน้า'
    _form: '\Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm'
  ความต้องการ:
    _permission: 'จัดการเอนทิตี rovi_game'
    rovi_game: \d+
  ตัวเลือก:
    _node_operation_route: จริง
    rovi_game:
      ประเภท: เอนทิตี: rovi_game
    rovi_game_revision:
      ประเภท: entity_revision:rovi_game

แบบฟอร์มถูกกำหนดใน src/Form/RoviGameRevisionRevertForm.php.

เนมสเปซ Drupal\msul_rovi_games\แบบฟอร์ม;

ใช้ Drupal\Component\Datetime\TimeInterface;
ใช้ Drupal\Core\Datetime\DateFormatterInterface;
ใช้ Drupal\Core\Entity\EntityRepositoryInterface;
ใช้ Drupal\Core\Entity\Sql\SqlContentEntityStorage;
ใช้ Drupal\Core\Entity\EntityStorageInterface;
ใช้ Drupal\Core\Form\ConfirmFormBase;
ใช้ Drupal\Core\Form\FormStateInterface;
ใช้ Drupal\Core\Url;
ใช้ Drupal\msul_rovi_games\Entity\RoviGameInterface
ใช้ Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * จัดเตรียมแบบฟอร์มสำหรับการคืนการแก้ไข rovi_game
 *
 *@ภายใน
 */
คลาส RoviGameRevisionRevertForm ขยาย ConfirmFormBase {

  /**
   * {@inheritdoc}
   */
  buildForm ฟังก์ชันสาธารณะ (อาร์เรย์ $form, FormStateInterface $form_state, RoviGameInterface $rovi_game_revision = NULL) {
    $this->revision = $rovi_game_revision;
    $form = parent::buildForm($form, $form_state);

    คืนฟอร์ม $;
  }
}

เมื่อฉันพยายามเปลี่ยนกลับ ฉันได้รับข้อผิดพลาดต่อไปนี้

TypeError: อาร์กิวเมนต์ 3 ที่ส่งผ่านไปยัง Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm::buildForm() จะต้องติดตั้งอินเทอร์เฟซ Drupal\msul_rovi_games\Entity\RoviGameInterface หรือเป็น null สตริงที่กำหนดใน Drupal\msul_rovi_games\Form\RoviGameRevertForm->buildForm() (บรรทัดที่ 116 ของ /opt/drupal/web/modules/custom/msul_rovi_games/src/Form/RoviGameRevisionRevertForm.php)

ฉันพลาดอะไรไป

Score:4
ธง in

คุณขาดเพียงระดับ 'พารามิเตอร์' ในอาร์เรย์ตัวเลือกของคุณ ดู ตัวเลือกชื่อทากเส้นทาง Upcasting. โปรดทราบว่าพารามิเตอร์ต้องซ้อนกันภายใต้ ตัวเลือก > พารามิเตอร์.

foobar.view:
  เส้นทาง: '/foobar/{foobar_placeholder}'
  ค่าเริ่มต้น:
    _controller: '\Drupal\foobar\Controller\Foobar::เนื้อหา'
    _title: 'โอ้ ใช่ ฟูบาร์'
  ตัวเลือก:
    พารามิเตอร์:
      foobar_placeholder:
        ประเภท: เอนทิตี:foobar

รหัสของคุณอัปเดต:

entity.rovi_game.revision_revert_confirm:
  เส้นทาง: '/rovi_game/{rovi_game}/revisions/{rovi_game_revision}/revert'
  ค่าเริ่มต้น:
    _title: 'เปลี่ยนกลับเป็นรุ่นก่อนหน้า'
    _form: '\Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm'
  ความต้องการ:
    _permission: 'จัดการเอนทิตี rovi_game'
    rovi_game: \d+
  ตัวเลือก:
    _node_operation_route: จริง
    # รังพารามิเตอร์ภายใต้ "พารามิเตอร์"
    พารามิเตอร์:
      rovi_game:
        ประเภท: เอนทิตี: rovi_game
      rovi_game_revision:
        ประเภท: entity_revision:rovi_game

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา