我的定制实体是可修正的。我可以看到修订,但我的修订还原表单不起作用。表单的路由在msul_rovi_games.routing.yml中定义。
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中定义。
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行)
我遗漏了什么?
发布于 2022-05-27 15:46:51
您只是在选项数组中缺少了一个级别,“参数”。见上行路由段塞名称选项。注意,参数必须嵌套在选项>参数下。
foobar.view:
path: '/foobar/{foobar_placeholder}'
defaults:
_controller: '\Drupal\foobar\Controller\Foobar::content'
_title: 'Oh yeah foobar'
options:
parameters:
foobar_placeholder:
type: entity:foobar您的代码已更新:
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_gamehttps://drupal.stackexchange.com/questions/311359
复制相似问题