我想对EA管理实体中的字段使用自定义类型的地雷。
我正在使用SF Flex,因此我的类型已自动连接并正确设置为服务(显示为debug:container)。
现在,我希望在下面执行以下操作easy_admin.yaml:
Menu:
class: Lch\MenuBundle\Entity\Menu
help: 'admin.site.menu.help'
controller: App\Controller\Admin\Site\MenuController
list:
fields:
- title
- location
form:
fields:
- title
- location
- { property: menuItems, type: 'lch_menu_tree' }
Run Code Online (Sandbox Code Playgroud)
我在文档中发现,除了本机Type或EA之外,您什么都不能放在这里。
如何设置EA以使其在此特定字段中使用我的类型?
我正在使用带有symfony4的easy-admin的vich-uploader捆绑包。设置完成后,尝试删除或更新实体时出现此错误
在属性路径“ imageName”处给定的类型为“字符串”,“ NULL”的预期参数。
对于这种常见情况,应用程序的配置最容易。地雷测试实体:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass="App\Repository\TestRepository")
* @Vich\Uploadable
*/
class Test
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $imageName;
/**
* @Vich\UploadableField(mapping="test_images", fileNameProperty="imageName")
* @var File
*/
private $imageFile;
/**
* @ORM\Column(type="datetime")
* @var \DateTime
*/
private $updatedAt;
public function getId()
{
return $this->id;
}
public function getImageName()
{
return $this->imageName;
}
public function setImageName(string …Run Code Online (Sandbox Code Playgroud) 我使用easyadmin,我希望字段“role”显示字段类型“radio”中的角色选择,但发生这种类型的错误(数组到字符串转换)(见下图):
这是我的配置:
easy_admin:
entities:
User:
class: AppBundle\Entity\User
form:
fields:
- { property: 'username' }
- { property: 'email' }
- { property: 'enabled' }
- property: 'plainPassword'
type: 'repeated'
type_options:
type: Symfony\Component\Form\Extension\Core\Type\PasswordType
required: false
first_options: { label: '%label.password%' }
second_options: { label: '%label.password_confirmation%' }
invalid_message: fos_user.password.mismatch
- property: 'roles'
type: 'choice'
type_options:
mapped: true
expanded: true
multiple: false
choices: { 'Conseiller': 'ROLE_USER', 'Administrateur': 'ROLE_ADMIN' }
Run Code Online (Sandbox Code Playgroud)
有人会为我提供解决方案,以便我可以使用easyadmin显示单选按钮吗?
提前致谢
在使用EasyAdminBundle创建的管理控制台中,我的表单验证仅适用于没有的字段CKEditorType。一些字段需要编辑,因此我使用FOSCKEditorBundle实现了所见即所得。
有关领域的摘录:
- { property: 'content', type: 'FOS\CKEditorBundle\Form\Type\CKEditorType'}
Run Code Online (Sandbox Code Playgroud)
当我提交带有空白“内容”字段的表单时,InvalidArgumentException出现错误消息:Expected argument of type "string", "NULL" given.而不是诸如“ 请填写此字段”之类的验证错误。
没有CKEditor的相关领域的代码片段:
- { property: 'content' }
Run Code Online (Sandbox Code Playgroud)
=>验证非常有效。
我的实体字段:
/**
* @ORM\Column(type="text")
* @Assert\NotBlank
* @Assert\NotNull
*/
private $content;
Run Code Online (Sandbox Code Playgroud)
Symfony探查器显示此字段确实具有required属性。
如何使用CKEditor字段类型启用验证?
我正在尝试使用一些参数在模板内生成 EasyAdmin3 url,但由于某种原因它们不存在于控制器中。
树枝模板:
<a href="{{ ea_url().setRoute('route_name').set('id', 1) }}">xxx</a>
<a href="{{ ea_url({'routeName': 'route_name', 'id':1}) }}">yyy</a>
Error with missing EA context:
<a href="{{ path('route_name', {'id': 1}) }}">zzz</a>
Run Code Online (Sandbox Code Playgroud)
控制器:
/**
* @Route("/admin/something/{id}", name="rounte_name")
*/
public function xyz($id = null, Request $request, AdminContext $context)
{
dd($_GET['id'], $request->request->all(), $context->getRequest()->request->all());
...
}
Run Code Online (Sandbox Code Playgroud)
$_GET['id'] 有效,但请求和上下文为空 []。
知道如何使用参数按名称生成路线吗?
谢谢
我有一个实体 Hike 与另一个指定部门有关系
<?php
class Hike
{
private $id;
private $name;
private $description;
/**
* @ORM\ManyToOne(targetEntity=Department::class, inversedBy="hikes")
* @ORM\JoinColumn(nullable=false)
* @Assert\NotBlank(message="libdepartmentRequired")
*/
private $department;
// ...
}
Run Code Online (Sandbox Code Playgroud)
<?php
class Department
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=3)
*/
private $department_code;
/**
* @ORM\Column(type="string", length=255)
*/
private $department_nom;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Hike", mappedBy="department")
*/
private $hikes;
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是当我排序时,department我看到 easyAdmin3 按部门 ID 排序,我想按department_nom
我看到了很多解决方案,但它们都使用 easyAdmin2 和 easy_admin.yaml …