我有一对多的关系Cart-SendingMethod
。我想为新SendingMethod
设置默认Carts
。所以我试过这个:
<?php
/**
* @ORM\ManyToOne(targetEntity="MetodoEnvio", inversedBy="metodoEnvios")
* @ORM\JoinColumn(name="metodo_envio_id", referencedColumnName="id")
**/
private $metodoEnvio = 1;
但不起作用......我明白了:
Impossible to access an attribute ("id") on a integer variable ("1") when I call Cart.SendingMethod.id from a view file
那么如何为新SendingMethod
设置默认Products
?
我可以在控制器中执行此操作,但我想知道实体是否可以Product
。
注意:我不确切地知道这是一个symfony还是一个学说问题。
答案 0 :(得分:0)
只需在构造函数中设置属性的默认值,如下所示:
public function __construct(..)
{
$this->property = new OtherObject();
}
答案 1 :(得分:0)
您不想将依赖项引入您的实体。
显而易见且更干净的方法是创建CartFactory服务,并将其注入需要创建购物车的任何控制器(或其他类)。将EntityManager和其他依赖项注入工厂。这样你就可以干掉你的购物车初始化代码,并避免让控制器膨胀。