标签: easyadmin

带有过滤器列表的symfony easyadmin表单字段类型实体

我使用 symfony 3.4 和 easycorp/easyadmin-bundle 1.17

这是我的“Quotation”类,“artisan”字段是“Person”实体的“注册中”(person.type = 1):

class Quotation
{
/** others fields... */

/**
 *  1 => 'artisan', 2 => 'customer'
 */
private $type;

/**
 * @ORM\ManyToOne(targetEntity="Person", inversedBy="artisanQuotations", cascade= { "persist" })
 * @ORM\JoinColumn(name="artisan_id", referencedColumnName="id")
 */
private $artisan;

    /** getters and setters ... */
Run Code Online (Sandbox Code Playgroud)

我在使用自定义字段类型的表单字段时遇到问题

form:
    fields:
        ...
        - { property: 'artisan', label: '', type: 'AppBundle\Form\Field\ArtisanType' }
Run Code Online (Sandbox Code Playgroud)

我创建了这个表单字段类型,以便能够通过 query_builder 过滤列表:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('artisan', EntityType::class, array(
        'class' => 'AppBundle:Person',
        'label' => false,
        'query_builder' …
Run Code Online (Sandbox Code Playgroud)

symfony easyadmin

5
推荐指数
1
解决办法
3197
查看次数

添加 Symfony EasyAdmin 3.x ManyToMany 错误:The Doctrine type of the .... 字段为“4”,EasyAdmin 尚不支持

我正在尝试使用 easyAdmin 3.x 在两个类之间建立一个简单的 ManyToMany 关系,当我尝试显示实体 CRUD 时,我经常出现此错误:

“salles”字段的Doctrine类型为“4”,EasyAdmin尚不支持。

这两个实体都存在函数 __to string

public function __toString()
    {
        return $this->name;
    }
Run Code Online (Sandbox Code Playgroud)

我的 CrudController:

namespace App\Controller\Admin;

use App\Entity\Batiment;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;


class BatimentCrudController extends AbstractCrudController
{
    public static function getEntityFqcn(): string
    {
        return Batiment::class;
    }


    public function configureFields(string $pageName): iterable
    {
        return [
            'name',
            'salles'

        ];
    }

}
Run Code Online (Sandbox Code Playgroud)

easyadmin 3.x 不管理多对多关系吗?

有没有一种特殊的方式来管理和显示这些关系?

我发现了这个捆绑包,感谢您的帮助!

symfony easyadmin

5
推荐指数
2
解决办法
4453
查看次数

EasyAdmin 3:嵌套表单

我正在尝试将表单嵌入到表单中。就我而言:我想将 Period 和 Price 表单嵌入到 Offer 表单中的 Poi 表单中。架构 :

  • Poi形式
    • 报价单
      • 价格表
      • 期间形式

关系:

  • Poi 实体与 Offer 实体具有 OneToMany 关系
  • 报价实体与价格实体有关系 OneToMany 和与 Period 实体的 ManyToMany 关系。

几天来我一直在寻找解决方案,我真的需要帮助,所以如果有人可以帮助我,那就太好了。

1. 第一个测试: 在我的 PoiCrudController 中使用 CollectionField

public function configureFields(string $pageName): iterable {
    $offers = CollectionField::new('offers')
            ->setFormTypeOptions([
                'delete_empty' => true,
                'by_reference' => false,
            ])
            ->setEntryIsComplex(false)
            ->setCustomOptions([
                'allowAdd' => true,
                'allowDelete' => true,
                'entryType' => 'App\Form\OfferType',
                'showEntryLabel' => false,
            ]),
Run Code Online (Sandbox Code Playgroud)

在优惠类型中:

class OfferType extends AbstractType {

    public function buildForm(FormBuilderInterface $builder, array …
Run Code Online (Sandbox Code Playgroud)

symfony4 easyadmin

5
推荐指数
2
解决办法
4754
查看次数

如何在 EasyAdmin 3 中添加自定义操作?

我的实体 Participant 有一个 CrudController。我想添加一个自定义操作 sendAcknowledgementEmail。该EasyAdmin文档 没有提及的自定义函数的参数或者返回值什么。

我有以下代码

public function configureActions(Actions $actions): Actions
{
    $send_acknowledgement_email = Action::new('sendAcknowledgementEmail', 'Send Acknowledgement Email', 'fa fa-send')
        ->linkToCrudAction('sendAcknowledgementEmail');

    return $actions
        ->add(Crud::PAGE_INDEX, $send_acknowledgement_email)
        ->add(Crud::PAGE_EDIT, $send_acknowledgement_email)
    ;
}

public function sendAcknowledgementEmail() //Do I need parameters?
{
    //How do I get the Entity?

    //What should I return?
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,EasyAdmin 检测到自定义函数,但我收到错误消息“控制器必须返回一个“Symfony\Component\HttpFoundation\Response”对象,但它返回了 null。您是否忘记在控制器中的某处添加 return 语句?

我如何从这里继续?

symfony easyadmin

5
推荐指数
2
解决办法
4369
查看次数

Symfony 4 EasyAdmin 如何加密密码?

我正在使用 EasyAdmin 来添加/编辑用户,想问一下是否有可能加密您的密码?密码加密以前在我使用 Symfony 4 make:registration-form 时有效,但我现在不能使用,我必须使用 EasyAdmin。

easy_admin.yaml

easy_admin:
  entities:
    User:
     class: App\Entity\User
     password_encoding: { algorithm: 'bcrypt', cost: 12 }
Run Code Online (Sandbox Code Playgroud)

(实际)我进入EasyAdmin页面(/admin),点击User,Add User,填写邮箱(test@gmail.com)和密码(test),点击Save Changes。

现在用户存储在数据库中,但使用明文密码。 在此处输入图片说明

(预期)以上所有但密码都是加密的。

symfony easyadmin symfony-4.2

4
推荐指数
2
解决办法
8611
查看次数

EasyAdmin 3 类 DateTime 的对象无法转换为字符串

我在使用easy admin 3时遇到问题。我按照symfony doc的说明进行操作,但最终出现此错误:呈现管理员时无法将类DateTime的对象转换为字符串。

谢谢你的帮助 !

class ArticleCrudController extends AbstractCrudController
Run Code Online (Sandbox Code Playgroud)

{

/**
 * @return string
 */
public static function getEntityFqcn(): string
{
    return Article::class;
}

/**
 * @param Crud $crud
 * @return Crud
 */
public function configureCrud(Crud $crud): Crud
{
    return $crud
        ->setDateFormat('d/m/Y')
        // ...
        ;
}
Run Code Online (Sandbox Code Playgroud)

}

crud easyadmin symfony5

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

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
查看次数

开发我的网络应用程序时 EasyAdmin Bundle 问题

我正在开发一个 symfony 5 网络项目,我必须将其作为一个大学项目。我从管理部分开始,使用了 easycorp 的捆绑包 easyadmin。我首先把这些东西都做好了,但是随着项目的进展,我开始收到以下错误

EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator::setCrudId():参数 #1 ($crudId) 必须是字符串类型,给定 null,在 /Applications/MAMP/htdocs/appmusic/vendor/twig/twig/src/ 中调用Extension/CoreExtension.php 第 1541 行

我对它即将到来没有任何线索。开始另一个项目,又出现同样的问题。

如果你们能派上用场的话,我需要你们的帮助。非常感谢

php symfony easyadmin

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

EasyAdmin 4 - 使用过滤器生成 URL

我需要将用户重定向到应用了过滤器“STATUS = ACTIVE”的 CRUD 索引。

我有这个:

$url = $this->adminUrlGenerator
            ->setController(Customer::class)

            ->generateUrl();

return $this->redirect($url);
Run Code Online (Sandbox Code Playgroud)

但我找不到向其添加过滤器的方法。我尝试过寻找类似的东西:

->setFilter('Status', 'ACTIVE')
Run Code Online (Sandbox Code Playgroud)

但没有任何运气。文档中没有任何内容。怎么做?

symfony easyadmin

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

EasyAdmin 3.X - 如何查看相关实体`toString` 而不是列表中的关联数量?

我有一个Product与实体有 ManyToMany 关系的实体Category

/**
 * @ORM\ManyToMany(targetEntity="App\Domain\Category", inversedBy="stalls")
 */
private $categories;

//...

/**
 * @return Collection|Category[]
 */
public function getCategories(): Collection
{
    return $this->categories;
}
Run Code Online (Sandbox Code Playgroud)

ProductCrudController课堂上,我有以下configureFields方法:

public function configureFields(string $pageName): iterable
{
    return [
        Field::new('name'),
        Field::new('description'),
        AssociationField::new('categories'),
    ];
}
Run Code Online (Sandbox Code Playgroud)

在创建/编辑关系中的Product一切都按预期工作时,但在产品列表中,而不是显示相关类别,我看到了产品具有的类别数量。我怎样才能改变这种行为?

在下图中,第一个产品有 1 个类别,列表中的第二个产品有 2 个不同的类别。我希望在此处显示类别的名称。

在此处输入图片说明

附带说明:Category类有一个__toString返回类别名称的方法。

编辑:

我正在寻找的行为Tags与下图中的列相同:

在此处输入图片说明

symfony easyadmin

3
推荐指数
3
解决办法
1625
查看次数

标签 统计

easyadmin ×10

symfony ×7

crud ×2

symfony5 ×2

javascript ×1

onclick ×1

php ×1

symfony-4.2 ×1

symfony4 ×1