Reputation: 851
So, I'm still REALLY new to symfony but i'm learning quickly... I created an entity and a crud (i forget how I did it actually but it was via the command line)..
The entity was created with this in it:
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;
}
}
Then when I did i think the doctrine:generate:entities thing (i could be completely wrong -- i forget what i did to create it)..
It generates a timeclock.orm.yml and creates the table in the database or something like that..
the timeclock.orm.yml has this:
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: { }
The problem is, totaltime
, and all the in
and out
fields need to have a default of NULL and I can't find how to do that.. I've been searching for the last 30 minutes trying to figure it out before I came here..
Then, once I edit whatever file(s) i need, how do I make it update it in the database too?
Upvotes: 43
Views: 81782
Reputation: 48865
Set your default values directly in the entity file:
/**
* @var varchar $totaltime
*/
private $totaltime = null;
Then add to your yml file:
totaltime:
type: string
nullable: TRUE
Then something like:
php app/console doctrine:schema:update --dump-sql
To update the database.
However, you really need to slow down and work you way through the examples in the manual. Guessing at how you did things is really not going to get you very far.
Upvotes: 54
Reputation: 2449
I've just been looking for the solution, and wasn't happy with the accepted solution. [Edit: though I now know it's because I was using annotation]. The way I've found that works for me is setting nullable:
/**
* @ORM\Column(type="varchar", nullable=true)
*/
private $totaltime = null;
Upvotes: 180