tutorial symfony2 query onetomany generate consultas symfony doctrine

query - La doctrina symfony2 permite valores nulos?



symfony 3.4 doctrine query (2)

Por lo tanto, todavía soy REALMENTE nuevo en Symfony, pero estoy aprendiendo rápidamente ... Creé una entidad y una porquería (se me olvida cómo lo hice en realidad, pero fue a través de la línea de comandos).

La entidad fue creada con esto en ella:

namespace Ecs/CrmBundle/Entity; use Doctrine/ORM/Mapping as ORM; /** * Ecs/CrmBundle/Entity/TimeClock */ class TimeClock { /** * @var integer $id */ private $id; /** * @var datetime $in1 */ private $in1; /** * @var datetime $out1 */ private $out1; /** * @var datetime $in2 */ private $in2; /** * @var datetime $out2 */ private $out2; /** * @var datetime $in3 */ private $in3; /** * @var datetime $out3 */ private $out3; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set in1 * * @param datetime $in1 * @return TimeClock */ public function setin1($in1) { $this->in1 = $in1; return $this; } /** * Get in1 * * @return datetime */ public function getin1() { return $this->in1; } /** * Set in2 * * @param datetime $in2 * @return TimeClock */ public function setin2($in2) { $this->in2 = $in2; return $this; } /** * Get in2 * * @return datetime */ public function getin2() { return $this->in2; } /** * Set in3 * * @param datetime $in3 * @return TimeClock */ public function setin3($in3) { $this->in3 = $in3; return $this; } /** * Get in3 * * @return datetime */ public function getin3() { return $this->in3; } /** * Set in4 * * @param datetime $in4 * @return TimeClock */ public function setin4($in4) { $this->in4 = $in4; return $this; } /** * Get in4 * * @return datetime */ public function getin4() { return $this->in4; } /** * Set in5 * * @param datetime $in5 * @return TimeClock */ public function setin5($in5) { $this->in5 = $in5; return $this; } /** * Get in5 * * @return datetime */ public function getin5() { return $this->in5; } /** * Set in6 * * @param datetime $in6 * @return TimeClock */ public function setin6($in6) { $this->in6 = $in6; return $this; } /** * Get in6 * * @return datetime */ public function getin6() { return $this->in6; } /** * @var Ecs/AgentManagerBundle/Entity/User */ private $noteBy; /** * Set noteBy * * @param Ecs/AgentManagerBundle/Entity/User $noteBy * @return TimeClock */ public function setNoteBy(/Ecs/AgentManagerBundle/Entity/User $noteBy = null) { $this->noteBy = $noteBy; return $this; } /** * Get noteBy * * @return Ecs/AgentManagerBundle/Entity/User */ public function getNoteBy() { return $this->noteBy; } /** * @var datetime $in1 */ private $in1; /** * @var datetime $out1 */ private $out1; /** * @var datetime $in2 */ private $in2; /** * @var datetime $out2 */ private $out2; /** * @var datetime $in3 */ private $in3; /** * @var datetime $out3 */ private $out3; /** * @var varchar $totaltime */ private $totaltime; /** * @var datetime $daydate */ private $daydate; /** * Set in1 * * @param datetime $in1 * @return TimeClock */ public function setIn1($in1) { $this->in1 = $in1; return $this; } /** * Get in1 * * @return datetime */ public function getIn1() { return $this->in1; } /** * Set out1 * * @param datetime $out1 * @return TimeClock */ public function setOut1($out1) { $this->out1 = $out1; return $this; } /** * Get out1 * * @return datetime */ public function getOut1() { return $this->out1; } /** * Set in2 * * @param datetime $in2 * @return TimeClock */ public function setIn2($in2) { $this->in2 = $in2; return $this; } /** * Get in2 * * @return datetime */ public function getIn2() { return $this->in2; } /** * Set out2 * * @param datetime $out2 * @return TimeClock */ public function setOut2($out2) { $this->out2 = $out2; return $this; } /** * Get out2 * * @return datetime */ public function getOut2() { return $this->out2; } /** * Set in3 * * @param datetime $in3 * @return TimeClock */ public function setIn3($in3) { $this->in3 = $in3; return $this; } /** * Get in3 * * @return datetime */ public function getIn3() { return $this->in3; } /** * Set out3 * * @param datetime $out3 * @return TimeClock */ public function setOut3($out3) { $this->out3 = $out3; return $this; } /** * Get out3 * * @return datetime */ public function getOut3() { return $this->out3; } /** * Set totaltime * * @param varchar $totaltime * @return TimeClock */ public function setTotaltime(/varchar $totaltime) { $this->totaltime = $totaltime; return $this; } /** * Get totaltime * * @return varchar */ public function getTotaltime() { return $this->totaltime; } /** * Set daydate * * @param datetime $daydate * @return TimeClock */ public function setDaydate($daydate) { $this->daydate = $daydate; return $this; } /** * Get daydate * * @return datetime */ public function getDaydate() { return $this->daydate; } }

Entonces, cuando lo hice, creo que la doctrina: generar cosas: entidades (podría estar completamente equivocado, olvidé lo que hice para crearlo).

Genera un timeclock.orm.yml y crea la tabla en la base de datos o algo así ..

el timeclock.orm.yml tiene esto:

Ecs/CrmBundle/Entity/TimeClock: type: entity table: null fields: id: type: integer id: true generator: strategy: AUTO in1: type: datetime out1: type: datetime in2: type: datetime out2: type: datetime in3: type: datetime out3: type: datetime totaltime: type: string daydate: type: datetime manyToOne: noteBy: targetEntity: Ecs/AgentManagerBundle/Entity/User lifecycleCallbacks: { }

El problema es, tiempo totaltime , y todos los campos de out y out necesitan tener un valor predeterminado de NULO y no puedo encontrar cómo hacerlo ... He estado buscando los últimos 30 minutos tratando de resolverlo antes de venir aquí..

Entonces, una vez que edito los archivos que necesito, ¿cómo puedo actualizarlos en la base de datos también?


Acabo de buscar la solución y no estaba satisfecho con la solución aceptada. [Editar: aunque ahora sé que es porque estaba usando la anotación]. La forma en que he encontrado que funciona para mí es establecer el valor de nulo:

/** * @ORM/Column(type="varchar", nullable=true) */ private $totaltime = null;


Establezca sus valores predeterminados directamente en el archivo de entidad:

/** * @var varchar $totaltime */ private $totaltime = null;

A continuación, agregue a su archivo yml:

totaltime: type: string nullable: TRUE

Entonces algo como:

php app/console doctrine:schema:update --dump-sql

Para actualizar la base de datos

Sin embargo, realmente necesita reducir la velocidad y seguir los ejemplos en el manual. Adivinar cómo hiciste las cosas realmente no te llevará muy lejos.