Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
Doctrine orm Symfony2-有没有办法在实体中创建虚拟字段?_Doctrine Orm_Symfony 2.8 - Fatal编程技术网

Doctrine orm Symfony2-有没有办法在实体中创建虚拟字段?

Doctrine orm Symfony2-有没有办法在实体中创建虚拟字段?,doctrine-orm,symfony-2.8,Doctrine Orm,Symfony 2.8,请帮助,我有一个表订单,有总价,兑换代码(包含美元等货币代码),兑换率(包含1.7等货币率) 现在,我想创建一个虚拟字段“exchangedTotalPrice”,它将包含exchangedTotalPrice=exchangeRate*totalPrice 我不想在数据库中创建单独的列,因为我的db表中已经有太多的列,我的要求是创建更多的虚拟字段 如果您有任何要求或不理解我的查询,请发表评论 您可以使用特定的方法来提供所需的内容(如评论中所述) 有趣的是,你可以在表单或其他许多地方连接到它

请帮助,我有一个表
订单
,有
总价
兑换代码
(包含美元等货币代码),
兑换率
(包含1.7等货币率)

现在,我想创建一个虚拟字段“exchangedTotalPrice”,它将包含exchangedTotalPrice=exchangeRate*totalPrice

我不想在数据库中创建单独的列,因为我的db表中已经有太多的列,我的要求是创建更多的虚拟字段


如果您有任何要求或不理解我的查询,请发表评论

您可以使用特定的方法来提供所需的内容(如评论中所述)

有趣的是,你可以在表单或其他许多地方连接到它


表格

例如,如果您有一个窗体,其生成器如下所示:

public function buildForm(FormBuilderInterface $builder, array $options)
{

     //... some other builder stuff here
     $builder->add('exchangedTotalPrice', TextType::class, [
         'mapped' => false,                // this will stop the setter being called on submit
     ]);
}

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'allow_extra_fields' => true,     // youll need this to allow the extra field element
    ]);
}
当symfony尝试填充表单时,它将尝试根据字段的名称在表单上调用getter和setter。因此,我们将依次使用上面定义的方法


小树枝

同样的情况也会发生在树枝上

{{ Orders.exchangedTotalPrice }}
这也将调用新字段上的getter

我没有测试过这些,所以你可能需要调试


为什么不直接实现方法
公共函数getExchangedTotalPrice(){return$this->exchangeRate*$this->totalPrice;}
?谢谢回复。我可以在查询生成器或查找函数中使用此函数吗?谢谢您的支持。这对我的处境很有帮助。:)
{{ Orders.exchangedTotalPrice }}