2011-12-08 23 views
7

Làm cách nào để thêm lưu và quay lại danh sách trong chế độ xem để tạo bản ghi mới? Nói chung, tôi muốn nhiều nút hơn vì vậy tôi đang tìm một câu trả lời chung chung.Trình tạo quản trị viên Symfony - một nút để lưu và quay lại danh sách

EDIT: máy phát điện Mặc định cung cấp cho tôi với hai nút:

  1. tiết kiệm
  2. lưu và thêm

Tôi muốn một nút mà saves and takes me back to the list. Và tôi cũng muốn có một nút tùy chỉnh với một hành động tùy chỉnh.

Hãy để tôi giải thích tình hình thực tế:

tôi có một danh sách hành động create mà sẽ đưa tôi đến một hình thức có một số lĩnh vực đầu vào. Bây giờ tôi muốn tạo một hình ảnh bằng cách sử dụng dữ liệu của các trường này. Tôi muốn hiển thị hình ảnh này dưới dạng xem trước ở bên phải của biểu mẫu. Đối với điều đó tôi cần một nút xem trước để bất cứ khi nào được nhấn, nó sẽ gửi dữ liệu đến chính nó để xem trước và sửa đổi thêm.

Tôi hy vọng nó rõ ràng hơn bây giờ.

+0

Bạn có thể giải thích rõ hơn câu hỏi của mình không? ** Lưu ** và ** Quay lại danh sách nút ** được bật theo mặc định trong biểu mẫu. Bạn muốn chèn thêm các nút ở đâu? Bạn cũng cần các nút với hành động tùy chỉnh? – macgyver

+0

@macgyver: Tôi đã cập nhật câu hỏi. – prongs

Trả lời

8

Bạn có đầu tiên để thêm vào generator.yml bạn save_and_back_to_list và các tùy chỉnh my_other_action hành động:

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: ~ 

Sau đó, bạn cần phải thêm chức năng helper tùy chỉnh của bạn để tạo ra các nút của bạn trong /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>'; 
    } 

Bây giờ bạn nhận được hai nút gửi cả ở dạng NewEdit.

Cuối cùng bạn phải ghi đè hàm processForm(sfWebRequest $request, sfForm $form), mà bạn có thể tìm thấy trong /cache/dev/modules/autoMymodule/actions/actions.class.php, để quản lý các tác vụ gửi mới của bạn. Tôi đoán chức năng create của bạn sẽ ghi đè lên trình tạo quản trị viên.

Tôi hy vọng tôi không quên gì cả.

+0

thực sự 'tạo' của tôi không ghi đè cái mặc định, tôi sẽ đổi tên thành cái gì khác. nhưng tôi có ý tưởng. – prongs

+0

hiện __' là gì? – prongs

+0

Các tác vụ được cung cấp bởi trình tạo quản trị viên bắt đầu bằng dấu gạch dưới, nhưng không phải trong lớp hành động. Tôi đoán rằng quy tắc Symfony này có mục đích tách biệt với hành động của người dùng. – macgyver

Các vấn đề liên quan