2017-01-19 4 views
1

Я хочу изменить дату, прежде чем сохранить в сонатных админах пачки:Sonata админы расслоение, 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 и preUpdate метод для этого. Например,

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

public function changeDate($object) 
{ 
    //Set your entity date. 
}