Sử dụng chú thích là khá đơn giản để thiết lập một giá trị mặc định cho một cột nhất định và khởi tạo bộ sưu tập cho các mối quan hệ thực thể:Giá trị cột mặc định với Doctrine2 và Symfony2 sử dụng YAML?
use Doctrine\Common\Collections\ArrayCollection;
class Category
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="category")
*/
protected $products;
/**
* @ORM\Column(type="bool")
*/
protected $is_visible;
public function __construct()
{
$this->products = new ArrayCollection();
$this->is_visible = true; // Default value for column is_visible
}
}
Làm thế nào cùng có thể đạt được bằng YAML nét thay vào đó, mà không tự viết Category.php
? __construct()
là phương pháp duy nhất để thực hiện việc này?
Acme\StoreBundle\Entity\Category:
type: entity
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
is_visible:
type: bool
oneToMany:
products:
targetEntity: Product
mappedBy: category
Chú thích không rõ ràng đối với tôi (có thể tiếng Anh của tôi không tốt để giải thích rõ). Nhưng bạn đã xác nhận những gì tôi đang nói: sử dụng YAML bạn phải chỉnh sửa lớp PHP đã tạo để thiết lập các giá trị mặc định, đúng không? Không có cách nào khác để làm điều này? – gremo
Không có cách nào để thực hiện việc này bằng chú thích. Bạn phải tự thêm phương thức xây dựng và thêm giá trị mặc định. – Sgoettschkes
Đúng, như bạn đã nói và @Boo xác nhận, bạn cần đặt giá trị mặc định của mình trong lớp PHP được tạo trực tiếp. Tôi đã chỉnh sửa câu trả lời của mình để làm nổi bật thực tế này. – Matt