7

新しいレコードを作成するために、ビューに[保存してリストに戻る]ボタンを追加するにはどうすればよいですか?一般的に、もっとボタンが欲しいので、一般的な答えを探しています。

編集:デフォルトのジェネレーターには2つのボタンがあります:

  1. 保存する
  2. 保存して追加

そのボタンが欲しいですsaves and takes me back to the list。また、カスタムアクションを備えたカスタムボタンも必要です。

実際の状況を説明させてください。

createいくつかの入力フィールドを持つフォームに移動するリストアクションがあります。次に、これらのフィールドのデータを使用して画像を作成します。この画像をフォームの右側にプレビューとして表示したいと思います。そのためには、プレビューボタンが必要です。これにより、押すたびに、プレビューとさらなる変更のためにデータが自分自身に送信されます。

今はもっとはっきりしているといいのですが。

4

1 に答える 1

8

generator.ymlまず、自分save_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>';
  }

Newこれで、フォームとフォームの両方に2つの送信ボタンが表示されますEdit

processForm(sfWebRequest $request, sfForm $form)最後に、で見つけることができる関数をオーバーライドして/cache/dev/modules/autoMymodule/actions/actions.class.php、新しい送信アクションを管理する必要があります。createあなたの関数はadminジェネレーターのものをオーバーライドすると思います。

私は何も忘れないことを願っています。

于 2011-12-08T19:05:57.377 に答える