2011-12-08 11 views
7

を保存してリストに戻すにはどうすればいいですか?新しいレコードを作成するためのビューでボタンをクリックしますか?一般的に、より多くのボタンが必要なので、私は一般的な答えを探しています。symfony admin generator - 保存してリストに戻るためのボタン

EDIT:デフォルトジェネレータは二つのボタンで私を提供しています。

  • 保存

    1. 私が欲しい

    を保存し、追加しますボタンはsaves and takes me back to the listです。また、カスタムアクションを含むカスタムボタンも必要です。

    は私が実際の状況を説明してみましょう:

    私はいくつかの入力フィールドを持つフォームに私を取るlistアクションcreateを持っています。今私はこれらのフィールドのデータを使って画像を作りたいと思っています。私はフォームの右側にプレビューとしてこのイメージを表示したいと思います。そのためにはプレビューボタンが必要です。プレビューボタンを押すたびに、データをプレビューしてさらに修正するためにデータを送信します。

    今はっきりしていることを願っています。

  • +0

    あなたの説明をより良くすることができますか? **保存**および**リストに戻る**ボタンは、デフォルトでフォームで有効になっています。ボタンをどこに挿入したいのですか?カスタムアクションのボタンも必要ですか? – macgyver

    +0

    @macgyver:質問を更新しました。 – prongs

    答えて

    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>'; 
        } 
    

    であなたをあなたのボタンを作成するためにカスタマイズヘルパー関数を追加する必要がありますNewEditの両方に2つの送信ボタンがあります。

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

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

    +0

    実際に私の 'create'がデフォルトのものを上書きしていないので、名前を別のものに変更します。しかし、私は考えを得た。 – prongs

    +0

    '__'は何を表しますか? – prongs

    +0

    adminジェネレータが提供するアクションはアンダースコアで始まりますが、アクションクラスには含まれません。私は、このSymfonyルールは、ユーザアクションから分離する目的を持っていると思います。 – macgyver

    関連する問題