2016-04-02 9 views
4

のデフォルト値を設定するために、私はsymfonyの2.8Symfony2の:私は名前のテーブルを持ってどのようにフィールドのDateTime

と連携:DateTimeフィールド「fechaAlta」

と「Docentes」私はのデフォルト値を必要とします「newAction」と「編:このフィールドは、私は新しいレコードを追加するとき

は、私が「DocentesController.php」symfonyは2関数を作成したファイルでは、コマンドgenerate:doctrine:crud

を使用して、CRUDを生成する「今日」でありますitAction "(他の中でも)。どちら同じフォームを使用して、フォルダの「フォーム」でファイルに「DocentesType.php」を挿入します。

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 

     ->add('fechaAlta', 'date') 
     ->add('dni') 
     # 
    ; 
} 

を私は2つの解決策を試してみました:

ONE:実体ファイルで名付けられ、「Docentesない日01月01、2011年:fechaAlta 『の値で表示されます。」

public function __construct() 
{ 
$this->fechaAlta = new \DateTime();  
} 

しかし、私は新しいレコードを追加するためのフォームを使用する場合、フィールドは、私は関数を追加』の.php現在の日付で表示されます。

TWO:私は新しいレコードを追加するとき

->add('fechaAlta', 'date', array(
       'data' => new \DateTime())) 
## 

は今、私は再び値を得る:

私は、関数buildFormを編集日01月01、2011年に私が編集するときレコード、Symfonyは私の元の値、例えば2016-03-25を変更し、今日の価値を設定します!私が必要とするすべての反対!

+0

私は変更: - fechaAlta」、 '日付' と '>(追加' を、配列( '012' '' '' '' '' '' '' 'データ' => new \ DateTime())) 'to' - > add( 'fechaAlta'、 'date'、array( 'data' => new \ DateTime ')))'新しいレコードの場合は今日の日付を取得しますが、レコードを編集するときは問題は残ります。 –

+0

サーバーとphp.iniの日付/時刻/タイムゾーンの設定が正しいことを100%確信していますか?とにかく、あなたは '$ entity-> setFetchAlta(new \ DateTime());を呼び出すことができました;' newAction'で私は思いますか? – ccKep

答えて

1

あなたが交換する必要があります。

public function __construct() 
{ 
$this->fechaAlta = new \DateTime('now');  
} 
+2

引数は必須ではありません。php docsの[Example#2、3rd part](http://php.net/manual/en/datetime.construct.php)を参照してください。 – ccKep

0

によって

public function __construct() 
{ 
$this->fechaAlta = new \DateTime();  
} 

別のオプション:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('fechaAlta', 'date', array(
      'empty_data' => new \DateTime('now), 
     )) 
     ->add('dni') 
    ; 
} 
関連する問題