我想在创建新用户时使用 EasyAdmin 3.x 的验证组来验证每个字段。
\n我有一个包含name、phone和email字段的 User 实体,并在“创建”组中使用 @UniqueEntity ,因此我可以在 EasyAdmin 外部创建的表单中更新用户。这工作得很好,但当我使用新的组时,我无法找到如何告诉 EasyAdmin 使用默认组和我的创建组我的创建组。
\n这是带有我所具有的约束的简化用户实体
\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Bridge\\Doctrine\\Validator\\Constraints\\UniqueEntity;\nuse Symfony\\Component\\Validator\\Constraints as Assert;\n\n/**\n * @ORM\\Entity(repositoryClass=LeadRepository::class)\n * @ORM\\HasLifecycleCallbacks()\n * @UniqueEntity(\n * fields="cellphone",\n * message="Ya existe un usuario con este n\xc3\xbamero telef\xc3\xb3nico",\n * groups={"creation"}\n * )\n * @UniqueEntity(\n * fields="email",\n * message="Ya existe un usuario con este email",\n * groups={"creation"}\n * )\n */\nclass Lead\n{\n /**\n * @ORM\\Id()\n * @ORM\\GeneratedValue()\n * @ORM\\Column(type="integer")\n …Run Code Online (Sandbox Code Playgroud) 我的 symfony 应用程序有这个实体:
\n<?php\n\nnamespace App\\Entity;\n\nclass Lead\n{\n private ?string $zipCode;\n private ?string $city;\n\n public function getZipCode(): ?string\n {\n return $this->zipCode;\n }\n\n public function setZipCode(string $zipCode): self\n {\n $this->zipCode = $zipCode;\n\n return $this;\n }\n\n public function getCity(): ?string\n {\n return $this->city;\n }\n\n public function setCity(string $city): self\n {\n $this->city = $city;\n\n return $this;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n表单LeadType为:
\n$builder->add(\'zipCode\', TextType::class, [\n \'attr\' => [\n \'placeholder\' => \'Ex : 44000\',\n \'onchange\' => \'cityChoices(this.value)\',\n ]\n ])\n ->add(\'city\', ChoiceType::class, [\n \'choices\' …Run Code Online (Sandbox Code Playgroud) 我正在使用 Symfony 6 表单。我尝试使用该方法提交表单submit()。从文档Symfony Form Direct Submit中,错误原因被阐明为“使用 Submit() 方法提交的字段列表必须与表单类定义的字段相同。否则,您将看到表单验证错误: ”。我该如何调试并解决这种错误?
我试图找到一种更好的方法来分配类来形成symfony中的元素.目前,我似乎无法手动分配每一个.即:
$this->widgetSchema['title']->setAttribute("class","fieldInput");
$this->widgetSchema['tag_line']->setAttribute("class","fieldInput");
$this->widgetSchema['description']->setAttribute("class","fieldInput");
// etc
Run Code Online (Sandbox Code Playgroud)
我尝试过没有成功的事情
1)循环遍历$ this-> widgetSchema,将其视为一个数组并将属性设置为每个键
2)$ this-> widgetSchema-> setAttribute()但这只是将类应用于生成的标签,而不是表单元素
必须有一种方法来击中所有的领域,而无需专门指导他们?
谁能指出我正确的方向?
Commuity,
我使用FosUserBundle,我的用户名有问题.
在我的页面上,您只需要一封电子邮件和一个密码.=>你可以使用用户名!(因为那样,我无法使用setUsername($ email)^^覆盖实体中的setEmail()函数
如果我在我的配置中使用它,我会收到以下错误.
fos_user:
registration:
form:
validation_groups: [AppRegistration]
Run Code Online (Sandbox Code Playgroud)
错误:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'username' cannot be null
Run Code Online (Sandbox Code Playgroud)
我能做什么?
先感谢您!
我是symfony的新手..我在以数组的形式保存数据时遇到了一些麻烦..我每次都会收到此错误.
"EntityManager#persist()期望参数1是实体对象,给定数组.
500内部服务器错误 - ORMInvalidArgumentException"
这是我的代码..
我的表格类型
<?php
namespace Demo\FirstBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class ShiftType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('date', 'date', array(
'label' => 'Shift Date',
'attr' => array(
'class' => 'form-control'
)
))
->add('site_name', 'text', array(
'label' => 'Site Name',
'attr' => array(
'class' => 'form-control'
)
))
->add('location', 'text', array(
'label' => 'Site Location',
'attr' => array(
'class' => 'form-control'
)
))
->add('startTime', 'time', array(
'label' => 'Start time',
'attr' …Run Code Online (Sandbox Code Playgroud)好吧,它可能很简单,但我无法找到问题所在.我试过但我的问题没有匹配
我试图从形式类创建,而不是在控制器中创建表单..
这是代码..
这是来自控制器
/**
* @Route("login", name="login")
*/
public function loginAction (Request $request) {
$registration = new Registration();
$form = $this->createForm(LoginForm::class, $registration, array(
'method' => 'POST'
));
return $this->render(
'admin/login.html.twig',
array('form' => $form->createView())
);
}
Run Code Online (Sandbox Code Playgroud)
在控制器内部,我使用USE来定义LoginForm,我在部分createForm中使用,所以这不是问题
这是来自FORM类
<?php
namespace AppBundle\AppForm;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class LoginForm extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('password')
->add('save', SubmitType::class);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(
array(
'data_class' => 'AppBundle\Entity\Registration'
));
}
public function getName() …Run Code Online (Sandbox Code Playgroud) 我想翻译以下Range的错误消息: 此值应该是1990年1月1日,12:00 AM或更多。
我正在使用Symfony的功能,该功能可解决除此错误以外的其他错误:
$this->get('translator')->trans($err, [], 'validators')
我是否应该使用其他方法来翻译此错误?
在树枝中显示Symfony表单时,如何隐藏不在form_widget中的字段?
{{ form_start(form) }}
{{ form_widget(form.field1) }}
{{ form_end(form) }}
Run Code Online (Sandbox Code Playgroud)
如果我在表单类型中有field2,它将默认显示在twig中,无论我没有在form_widget中插入
class MessageFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('field1', TextType::class, array())
->add('field2', TextType::class, array())
}
}
Run Code Online (Sandbox Code Playgroud)
我正在用css隐藏那些不需要的fieled,我想知道是否有一些优雅的解决方案?
我有一个实体"元素"与List的ManyToOne关系(列表可以有多个元素)
/**
* @ORM\ManyToOne(targetEntity="Liste")
*/
private $list;
Run Code Online (Sandbox Code Playgroud)
如何通过传递列表的id而不是列表本身来验证表单以添加新元素?(列表必须存在)
symfony-forms ×10
symfony ×9
php ×5
forms ×2
validation ×2
arrays ×1
doctrine-orm ×1
easyadmin ×1
entity ×1
null ×1
symfony1 ×1
symfony6 ×1
translate ×1
twig ×1