小编Tim*_* K.的帖子

EasyAdmin3:将附加变量传递给 twig-template (编辑页面)

背景

我想在编辑页面中显示与实体无关的信息。根据官方文档可以用configureResponseParameters-function来解决。

问题

所以我将该功能实现到我的 CRUD 控制器中。

  • 在 INDEX twig 模板上:我可以使用/查找变量
  • 在编辑树枝模板上:我无法使用/找到变量

知道为什么吗?

如何将数据传递到我的 EDIT-twig 模板?非常感谢!

我的文件

PersonCrudController.php

class PersonCrudController extends AbstractCrudController {
    public function configureCrud(Crud $crud): Crud {

        $crud->setFormThemes([
            'mystuff/person_edit_form.html.twig', '@EasyAdmin/crud/form_theme.html.twig'
        ]);

        return $crud;
    }

    public function configureFields(string $pageName): iterable {
        // ...
        yield TextField::new('specialDisplay')->setFormTypeOption('mapped', false);
        // ...
    }

    public function configureResponseParameters(KeyValueStore $responseParameters): KeyValueStore
    {
        $responseParameters->set('testtesttest', '123xyz');
        return $responseParameters;
    }
    // ...
}
Run Code Online (Sandbox Code Playgroud)

mystuff/person_edit_form.html.twig

{% block _Person_specialDisplay_row %}
    {{ testtesttest }} {# throws: Variable "testtesttest" does …
Run Code Online (Sandbox Code Playgroud)

crud parameter-passing symfony twig easyadmin

6
推荐指数
0
解决办法
1646
查看次数

EasyAdmin3:可点击的表格行(链接到编辑页面)

我不喜欢索引页面(EasyAdmin 3 / symfony 5)上每个实体末尾的“编辑”按钮,我希望表行可单击,它将直接将我发送到编辑-页。

我想解决方案必须使用 Javascript,所以我开始:

PHP 文件

class PersonCrudController extends AbstractCrudController {
   [...]
   
    public function configureFields(string $pageName): iterable {
        [...]
        yield TextField::new('fullName',  'Name')->onlyOnIndex()->setCssClass('js-row-action');
        [...]
    }

   [...]
}
Run Code Online (Sandbox Code Playgroud)

javascript 文件

// call functions once page is loaded
document.addEventListener("DOMContentLoaded", function() {
    makeTableRowClickable();
});

function makeTableRowClickable() {
    let elements = document.getElementsByClassName('js-row-action');

    for (let i = 0; i < elements.length; i++) {
        let td = elements[i];
        let tr = td.parentNode;

        tr.addEventListener("click", function (e) {
            alert('click the row, Jack!');
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

开放式问题 …

javascript crud onclick easyadmin symfony5

4
推荐指数
1
解决办法
4251
查看次数