我使用以下代码来显示 mariadb 数据库表中的下拉列表,但是在测试时它不起作用:
<?php
namespace App\Form;
use App\Entity\Signal;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
class SignalType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('actionPlan')
->add('actionPlanStatus', StatusType::class, [
'class' => Status::class,
'mapped' => false,
'choise_label' => function(Post $post){
return $post->getName();
}
])
->add('deadline')
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Signal::class,
]);
}
}
我收到以下错误。
解析“App\Form\StatusType”表单的选项时发生错误:选项“choise_label”、“class”不存在。定义的选项有:“action”、“allow_extra_fields”、“allow_file_upload”、“attr”、“attr_translation_parameters”、“auto_initialize”、“block_name”、“block_prefix”、“by_reference”、“compound”、“constraints”、“csrf_field_name” "、"csrf_message"、"csrf_protection"、"csrf_token_id"、"csrf_token_manager"、"data"、"data_class"、"已禁用"、"empty_data"、"error_bubbling"、"error_mapping"、"extra_fields_message"、"form_attr"、 “getter”、“帮助”、“help_attr”、“help_html”、“help_translation_parameters”、“inherit_data”、“invalid_message”、“invalid_message_parameters”、“is_empty_callback”、“label”、“label_attr”、“label_format”、“label_html” ", "label_translation_parameters", "mapped", "method", "post_max_size_message", "priority", "property_path", "required", "row_attr", "setter", "translation_domain", "trim", "upload_max_size_message", “验证组”。
你能帮我解决这个问题吗?
错误消息告诉您
class
选项不存在于StatusType
中。这主要用于EntityType
。
另外,没有选项
choise_label
,因为“c”有一个小错别字choice_label
。 ;)发生了..
您可以在此处找到类型列表:https://symfony.com/doc/current/reference/forms/types.html
我怀疑是否还有一个StatusType,我认为你命名它时指的是你的类名!?
标签应该是什么?在另一个类中定义的名称,即来自另一个实体的名称?如果是这样,那么我必须自己研究一下,我还不太了解,但我希望我仍然可以提供帮助。
这是我的代码中选择字段的示例:
->add('whitelister', EntityType::class, [
'class' => User::class,
'choice_label' => 'username',
'label' => 'Whitelister',
])