我有以下實體:如何更新相關實體對堅持列/與Doctrine2
/**
* @ORM\Entity
*/
class Product
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
}
和:
/**
* @ORM\Entity
*/
class Category
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="category", fetch="EXTRA_LAZY")
*/
protected $products;
/**
* @ORM\Column(type="integer")
*/
protected $productCount = 0;
public function updateProductCount()
{
$this->productCount = $this->products->count();
}
}
我想類別的productCount
領域是每當其相關產品更新/添加/刪除時更新。我已經創建了方法Category::updateProductCount()
來做到這一點,但我不確定最佳方法。
任何幫助?
謝謝,我用sql觸發器來實現這一點。我知道我真的不應該有一個計數列這個解決方案與我的ORM很好,並保持簡單。 –