奏鸣曲管理束,Symfony2 [英] Sonata admin bundle , Symfony2

查看:112
本文介绍了奏鸣曲管理束,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(' ,$请求 - >请求 - >获得( 's587f71334d196')[ '起始日期']);

$ 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);
}


解决方案

你可以在管理类你需要添加prePersist和preUpdate方法。例如

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

public function changeDate($ object)
{
//设置您的实体日期。
}


I want to change my date before to save in sonata admin bundle :

in fact try to change request in preCreate Method but I got nothing ...

here is my code (on my custom controller called 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);
}

解决方案

You can do this in your Admin Class you need to add prePersist and preUpdate method for that. For example

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

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

这篇关于奏鸣曲管理束,Symfony2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆