Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php EntityType字段中1:N原则关系的选定空值_Php_Symfony_Doctrine Orm_Doctrine_Symfony Forms - Fatal编程技术网

Php EntityType字段中1:N原则关系的选定空值

Php EntityType字段中1:N原则关系的选定空值,php,symfony,doctrine-orm,doctrine,symfony-forms,Php,Symfony,Doctrine Orm,Doctrine,Symfony Forms,我遇到了一些与风险有关的事件 我正在使用Symfony 2.6和ORM实体,其中包含以下符号实体: class Incident { private $id; private $name; private $date; /** * @ORM\ManyToOne(targetEntity="Risk") * @ORM\JoinColumn(name="risk_id") */ private $risk; } class Ri

我遇到了一些与风险有关的事件

我正在使用Symfony 2.6和ORM实体,其中包含以下符号实体:

class Incident
{
    private $id;
    private $name;
    private $date;
    /**
     * @ORM\ManyToOne(targetEntity="Risk")
     * @ORM\JoinColumn(name="risk_id")
     */
    private $risk;
}

class Risk
{
    private $id;
    private $level;
    private $name;
}
风险
-表包含如下数据:

id  level   name
1   0       none
2   2       low
3   1       very low
4   5       moderate
5   10      high
对于事件,我得到了如下表单类型:

class IncidentType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name')
[...]
            ->add('risk', 'entity', [
                'class' => 'Model:Risk',
                'property' => 'name',
                'empty_data' => null,
                'empty_value' => 'not assessed',
                'expanded' => true,
                'required' => [true|false](see below),
            ])
[...]
}
因此,我的事故风险可以“不评估”。也就是说,没有风险集(
null
)。为了保持模型的整洁,我不想让一行的级别为-1,名称为“未评估”

我的表单按预期工作,缺少一个小细节:当
风险
null
时,我的单选按钮列表没有选择值。无论
'required'
-选项的值如何,都会发生这种情况

对于空值,我得到:

( ) not assessed
( ) none
( ) very low
[...]
我想:

(x) not assessed
( ) none
( ) very low
[...]
我想对于(未扩展的)下拉字段来说,这种行为很好


当数据值为
null
时,是否有办法选择我的单选按钮的
'placeholder'
/
'empty\u value'
-选项?

对于您的
风险
字段,您应该执行以下操作:

class IncidentType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name')
        [...]
            ->add('risk', 'entity', [
                'class' => 'Model:Risk',
                'property' => 'name',
                'empty_data' => null, 
                'empty_value' => 'not assessed', 
                'expanded' => true, 
                'required' => true
            ])
    [...]
    }
}

我刚刚检查了它,当
risk
为空并且使用上述代码时,第一个值被选中。注:我为您的
风险
字段添加了
'empty\u data'=>null,
并删除了
占位符

,您应该执行以下操作:

class IncidentType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name')
        [...]
            ->add('risk', 'entity', [
                'class' => 'Model:Risk',
                'property' => 'name',
                'empty_data' => null, 
                'empty_value' => 'not assessed', 
                'expanded' => true, 
                'required' => true
            ])
    [...]
    }
}


我刚刚检查了它,当
risk
为空并且使用上述代码时,第一个值被选中。注:我添加了
'empty\u data'=>null,
并删除了
占位符

,该占位符有效,但不是一个好的解决方案。。。如果您的第一个值是动态的,会发生什么情况?

这很有效,但不是一个好的解决方案。。。如果您的第一个值是动态的,会发生什么情况?

您是否尝试过执行
“空数据”=>null、“空值”=>“未评估”
?实际上,
'empty\u value'=>“not assessment”
应该是一个技巧,你不需要占位符。我想知道我怎么会错过这个。然而,呈现的标记没有区别。“未评估”仍未选择。我更正了我的问题,删除了原型。如何在模板中呈现它?我正在使用
{{form_row(form.risk)}}
进行渲染。我可以使用新的Symfony 2.7.10设置确认它是否正常工作。谢谢你的帮助,@takeit。将您的评论改写为简短的回答,我很乐意接受。您是否尝试过使用
“空数据”=>null、“空值”=>“未评估”,
?实际上,
'empty\u value'=>“not assessment”
应该是一个技巧,你不需要占位符。我想知道我怎么会错过这个。然而,呈现的标记没有区别。“未评估”仍未选择。我更正了我的问题,删除了原型。如何在模板中呈现它?我正在使用
{{form_row(form.risk)}}
进行渲染。我可以使用新的Symfony 2.7.10设置确认它是否正常工作。谢谢你的帮助,@takeit。将您的评论改写为简短的回答,我将欣然接受。我的最终发现:它在Symfony 2.7.10中的工作与预期一致;它在Symfony 2.7.4中不起作用。您可以查看更改日志:并准确比较已更改的内容。也许它会给你一个提示。我猜相关的更改是在2.7.10或2.7.8中引入的。我看到它得到了照顾,并将升级。再次感谢您的帮助。我的最终发现:它在Symfony 2.7.10中的工作与预期一致;它在Symfony 2.7.4中不起作用。您可以查看更改日志:并准确比较已更改的内容。也许它会给你一个提示。我猜相关的更改是在2.7.10或2.7.8中引入的。我看到它得到了照顾,并将升级。再次感谢您的帮助。这与其说是回答,不如说是评论。我知道你没有足够的代表,但这是规则…这是一个评论,而不是一个答案。我知道你没有足够的代表权,但这是规则。。。