2017-01-19 15 views
1

私はソナタの管理バンドルに保存する前に、私の日付を変更するには:ここ ソナタ管理バンドル、Symfony2の

は私のコードです...

実際にpreCreate方法で要求を変更しようとするが、私は何も持っていません(eventAdminController.phpと呼ばれる私のカスタムコントローラ上):

protected function preCreate(Request $request, $object) 
{ 
    $jalali = $this->get('jalali'); 

    $all = $request->request->all(); 


    if(isset($request->request->get('s587f71334d196')['start_date'])){ 
     $start_date = explode('/',$request->request->get('s587f71334d196')['start_date']); 

     $start_date_day = $start_date[0]; 
     $start_date_mon = $start_date[1]; 
     $start_date_yer = $start_date[2]; 

     $start_date = $jalali->to_miladi($start_date_yer,$start_date_mon,$start_date_day); 

     $all['s587f71334d196']['start_date'] = $start_date[0].'-'.$start_date[1].'-'.$start_date[2]; 
    } 


    if(isset($request->request->get('s587f71334d196')['end_date'])){ 
     $end_date = explode('/',$request->request->get('s587f71334d196')['end_date']); 

     $end_date_day = $end_date[0]; 
     $end_date_mon = $end_date[1]; 
     $end_date_yer = $end_date[2]; 

     $end_date = $jalali->to_miladi($end_date_yer,$end_date_mon,$end_date_day); 

     $all['s587f71334d196']['end_date'] = $end_date[0].'-'.$end_date[1].'-'.$end_date[2]; 
    } 

    $request->request->replace($all); 
} 

答えて

4

あなたはそのためのprePersistと更新前のメソッドを追加する必要があり、あなたのADMINクラスでこれを行うことができます。例えば、

public function prePersist($object) 
{ 
    $this->changeDate($object); 
} 
public function preUpdate($object) 
{ 
    $this->changeDate($object); 
} 

public function changeDate($object) 
{ 
    //Set your entity date. 
} 
関連する問題