だから、私はまだsymfonyにとって本当に新しいですが、私はすぐに学んでいます...エンティティとクラッドを作成しました(実際にそれをやったことを忘れていますが、コマンドライン経由でした)。
エンティティは次のように作成されました:
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;
}
}
その後、私はdoctrine:generate:entitiesの事を考えました(私は完全に間違っているかもしれません-私はそれを作成するためにやったことを忘れています)。
Timeclock.orm.ymlを生成し、データベースなどにテーブルを作成します。
timeclock.orm.ymlには次のものがあります。
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: { }
問題は、totaltime
、およびすべてのin
およびout
フィールドにデフォルトのNULLが必要であり、その方法が見つからないことです。私がここに来る前にそれを理解しようとして最後の30分間探していました。
次に、必要なファイルを編集したら、どのようにデータベース内のファイルも更新しますか?
エンティティファイルにデフォルト値を直接設定します。
/**
* @var varchar $totaltime
*/
private $totaltime = null;
次に、ymlファイルに追加します。
totaltime:
type: string
nullable: TRUE
その後、次のようなもの:
php app/console doctrine:schema:update --dump-sql
データベースを更新します。
ただし、マニュアルの例を実際に遅くして作業する必要があります。あなたが物事をどのように行ったかを推測することは、あなたをそれほど遠くに行かせません。
私は解決策を探していましたが、受け入れられた解決策に満足していませんでした。 [編集:注釈を使用していたためだとわかったが]。私のために働くことがわかった方法は、nullableを設定することです:
/**
* @ORM\Column(type="varchar", nullable=true)
*/
private $totaltime = null;