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 }}