我使用 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) 我正在尝试使用 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 不管理多对多关系吗?
有没有一种特殊的方式来管理和显示这些关系?
我发现了这个捆绑包,感谢您的帮助!
我正在尝试将表单嵌入到表单中。就我而言:我想将 Period 和 Price 表单嵌入到 Offer 表单中的 Poi 表单中。架构 :
关系:
几天来我一直在寻找解决方案,我真的需要帮助,所以如果有人可以帮助我,那就太好了。
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) 我的实体 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 语句?
我如何从这里继续?
我正在使用 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。
(预期)以上所有但密码都是加密的。
我在使用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)
}
我不喜欢索引页面(EasyAdmin 3 / symfony 5)上每个实体末尾的“编辑”按钮,我希望表行可单击,它将直接将我发送到编辑-页。
我想解决方案必须使用 Javascript,所以我开始:
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)
// 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)
我正在开发一个 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 行
我对它即将到来没有任何线索。开始另一个项目,又出现同样的问题。
如果你们能派上用场的话,我需要你们的帮助。非常感谢
我需要将用户重定向到应用了过滤器“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)
但没有任何运气。文档中没有任何内容。怎么做?
我有一个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与下图中的列相同:
easyadmin ×10
symfony ×7
crud ×2
symfony5 ×2
javascript ×1
onclick ×1
php ×1
symfony-4.2 ×1
symfony4 ×1