我想在我的 ArticlesCrudController 的编辑页面中放置一个预览按钮。 我认为我尊重所有步骤,但我总是出现此错误:警告:未定义的数组键“ea”。
这是m代码:
namespace App\Controller\Admin;
class ArticlesCrudController extends AbstractCrudController
{
//...
/** la méthode configureAction permet de mettre en place le bouton ainsi que son action */
public function configureActions(Actions $actions): Actions
{
$preview = Action::new('previewArticle', 'Prévisualisation')
->displayAsButton()
->linkToCrudAction('previewArticle');
/** J'affiche le bouton sur la page d'édition de l'entité article */
return $actions
->add(Crud::PAGE_EDIT, $preview)
->add(Crud::PAGE_NEW, $preview);
}
/** Mise en place de la méthode previewArticle qui doit envoyer vers le template de prévisualisation */
public function previewArticle($entityId, ArticlesRepository $repo): RedirectResponse
{
$article = $repo->find($entityId);
if (!$article) {
throw $this->createNotFoundException('Article not found');
}
return $this->render('site_diet/preview/preview_article.html.twig', [
'articles' => $article
]);
}
这一步我正确地按下了按钮:)但是不行:( 请问有什么问题吗? 我使用的是easyadmin 4.7.0
我不知道你是否解决了这个问题,但我遇到了同样的问题,只是通过从操作中删除 displayAsButton() 来解决它。 应该是:
$preview = Action::new('previewArticle', 'Prévisualisation')
->linkToCrudAction('previewArticle');
我找到了答案:
首先,通过重写方法 configureActions() 添加操作:
public function configureActions(Actions $actions): Actions
{
$preview = Action::new('preview', 'Prévisualisation')
->linkToCrudAction('previewArticle');
$actions
->add(Crud::PAGE_EDIT, $preview)
->add(Crud::PAGE_NEW, Action::SAVE_AND_CONTINUE);
return $actions;
}
其次,编写这样的previewArticle()方法:
public function previewArticle(AdminContext $context)
{
$article = $context->getEntity();
$previewArticle = $article->getInstance();
return $this->render('site_diet/preview/preview_article.html.twig', [
'articles' => $previewArticle,
]);
}
而且效果很好:)