首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高entity_revision的路由参数?

如何提高entity_revision的路由参数?
EN

Drupal用户
提问于 2022-05-27 13:21:13
回答 1查看 47关注 0票数 1

我的定制实体是可修正的。我可以看到修订,但我的修订还原表单不起作用。表单的路由在msul_rovi_games.routing.yml中定义。

代码语言:javascript
复制
entity.rovi_game.revision_revert_confirm:
  path: '/rovi_game/{rovi_game}/revisions/{rovi_game_revision}/revert'
  defaults:
    _title: 'Revert to an earlier revision'
    _form: '\Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm'
  requirements:
    _permission: 'administer rovi_game entities'
    rovi_game: \d+
  options:
    _node_operation_route: TRUE
    rovi_game:
      type: entity:rovi_game
    rovi_game_revision:
      type: entity_revision:rovi_game

表单在src/ form /RoviGameRevisionRevertForm.php中定义。

代码语言:javascript
复制
namespace Drupal\msul_rovi_games\Form;

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

/**
 * Provides a form for reverting a rovi_game revision.
 *
 * @internal
 */
class RoviGameRevisionRevertForm extends ConfirmFormBase {

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

    return $form;
  }
}

当我试图恢复时,我会得到以下错误。

传递给Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm::buildForm()的参数3必须实现接口Drupal\msul_rovi_games\Entity\RoviGameInterface或null,在Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm->buildForm()中给出字符串( /opt/drupal/web/modules/custom/msul_rovi_games/src/Form/RoviGameRevisionRevertForm.php)的第116行)

我遗漏了什么?

EN

回答 1

Drupal用户

回答已采纳

发布于 2022-05-27 15:46:51

您只是在选项数组中缺少了一个级别,“参数”。见上行路由段塞名称选项。注意,参数必须嵌套在选项>参数下。

代码语言:javascript
复制
foobar.view:
  path: '/foobar/{foobar_placeholder}'
  defaults:
    _controller: '\Drupal\foobar\Controller\Foobar::content'
    _title: 'Oh yeah foobar'
  options:
    parameters:
      foobar_placeholder:
        type: entity:foobar

您的代码已更新:

代码语言:javascript
复制
entity.rovi_game.revision_revert_confirm:
  path: '/rovi_game/{rovi_game}/revisions/{rovi_game_revision}/revert'
  defaults:
    _title: 'Revert to an earlier revision'
    _form: '\Drupal\msul_rovi_games\Form\RoviGameRevisionRevertForm'
  requirements:
    _permission: 'administer rovi_game entities'
    rovi_game: \d+
  options:
    _node_operation_route: TRUE
    # Nest parameters under "parameters"
    parameters:
      rovi_game:
        type: entity:rovi_game
      rovi_game_revision:
        type: entity_revision:rovi_game
票数 4
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/311359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档