Usando anotaciones es muy fácil de configurar un valor predeterminado para una columna dada e inicializar colecciones de relaciones de entidad:Valor de columna predeterminado con Doctrine2 y Symfony2 con 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
}
}
cómo la misma se puede lograr usando YAML definición lugar, sin escribir manualmente Category.php
? ¿Es __construct()
el único método para hacer esto?
Acme\StoreBundle\Entity\Category:
type: entity
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
is_visible:
type: bool
oneToMany:
products:
targetEntity: Product
mappedBy: category
La anotación de Nope fue clara para mí (tal vez mi inglés no es tan bueno para explicarlo bien). Pero confirmó lo que estoy diciendo: con YAML tiene que editar la clase PHP generada para establecer los valores predeterminados, ¿verdad? No hay otra manera de hacer esto? – gremo
No hay forma de hacer esto con las anotaciones tampoco. Debe agregar manualmente el método de construcción y agregar el valor predeterminado. – Sgoettschkes
Sí, como dijo y confirmó @Boo, debe poner su valor predeterminado en la clase PHP generada directamente. He editado mi respuesta para resaltar este hecho. – Matt