2011-12-08 45 views
7

我如何添加一個保存並返回列表按鈕,在視圖中創建新的記錄按鈕?一般來說,我需要更多的按鈕,所以我正在尋找一個通用的答案。Symfony的管理generator--用於保存和恢復列表

編輯:默認發電機爲我提供了兩個按鈕:

  1. 保存
  2. 保存並添加

我想一個按鈕saves and takes me back to the list。而且我還想要一個具有自定義操作的自定義按鈕。

讓我解釋一下實際情況:

我有一個列表動作create說帶我到一個表單有一些輸入字段。現在我想用這些字段的數據製作圖片。我想在表單的右側將此圖像顯示爲預覽圖。爲此,我需要一個預覽按鈕,以便每當按下它時,它都會將數據提交給自己進行預覽和進一步修改。

我希望現在更清楚。

+0

你能解釋一下你的問題嗎? **保存**和**返回列表**按鈕在表單中默認處於啓用狀態。你想在哪裏插入更多的按鈕?你是否也需要自定義操作的按鈕? – macgyver

+0

@macgyver:我已經更新了這個問題。 – prongs

回答

8

你必須先在generator.ymlsave_and_back_to_list和其他自定義my_other_action操作添加:

config: 
     actions: ~ 
     fields: ~ 
     list: ~ 
     filter: ~ 
     form: ~ 
     edit: 
     actions: 
      _save: ~ 
      _list: ~ 
      save_and_back_to_list: ~ 
      my_other_action: ~ 
     new: 
     actions: 
      _save: ~ 
      _save_and_add: ~ 
      _list: ~ 
      save_and_back_to_list: ~ 
      my_other_action: ~ 

然後,你必須添加自定義的輔助功能/apps/myapplication/modules/mymodule/lib/mymoduleGeneratorHelper.class.php

public function linkToSaveAndBackToList($object, $params) 
    { 
    return '<li class="sf_admin_action_save_and_back_to_list"><input type="submit" value="'.__($params['label'], array(), 'sf_admin').'" name="save_and_back_to_list" /></li>'; 
    } 

    public function linkToMyOtherAction($object, $params) 
    { 
    return '<li class="sf_admin_action_my_other_action"><input type="submit" value="'.__($params['label'], array(), 'sf_admin').'" name="my_other_action" /></li>'; 
    } 

創建你的按鈕現在你在NewEdit表單中獲取兩個提交按鈕。

最後,您必須覆蓋功能processForm(sfWebRequest $request, sfForm $form),您可以在/cache/dev/modules/autoMymodule/actions/actions.class.php中找到該功能來管理您的新提交操作。我想你的create函數覆蓋管理髮生器。

我希望我不會遺忘任何東西。

+0

實際上,我的'create'不是覆蓋默認的,我會將名稱改爲別的。但我明白了。 – prongs

+0

'__'代表什麼? – prongs

+0

管理生成器提供的操作以下劃線開頭,但不在操作類中。我猜這個Symfony規則的目的是爲了與用戶操作分離。 – macgyver