2009-03-04 3 views
16

Cách đặt bố cục mẫu khác nhau cho các mô-đun khác nhau trong Symfony?Cách đặt bố cục mẫu khác nhau cho các mô-đun khác nhau trong Symfony

Tôi có ứng dụng ngân hàng bao gồm màn hình đăng nhập và phần thành viên. Vì vậy, khi người dùng truy cập vào trang web của tôi, anh ấy sẽ được trình bày với màn hình đăng nhập. Sau khi đăng nhập vào anh ta sẽ được chuyển hướng đến phần thành viên mà anh ta có thể làm bất cứ nhu cầu ngân hàng nào của mình.

Vì vậy, cách đặt bố cục khác nhau cho màn hình đăng nhập và các trang bên trong phần thành viên? Symfony dường như sử dụng frontend/templates/layout.php làm mẫu cho TẤT CẢ các trang. Có thể xác định các bố cục khác nhau không?

Trả lời

42

Có, bạn có thể xác định bố cục riêng cho mỗi chế độ xem (hoặc tắt hoàn toàn bố cục). Để làm điều này, bạn phải tạo (hoặc chỉnh sửa, nếu bạn đã có nó) tệp view.yml trong thư mục/config của mô-đun của bạn. Bạn có thể xác định bố cục được sử dụng cho tất cả các chế độ xem của mô-đun hoặc cho từng chế độ xem riêng biệt. Ví dụ:

#in /apps/my_app/modules/my_module/config/view.yml 

#this will apply custom_layout to all views of the module 
all: 
    layout: custom_layout 

#this will apply login_layout to the loginSuccess view 
loginSuccess: 
    layout: login_layout 

#disable layout for this view 
homeSuccess: 
    has_layout: false 

Trong mọi trường hợp, bố cục là tệp trong thư mục/mẫu ứng dụng của bạn (với .php nối). Nếu bạn không xác định bất kỳ chỉ thị bố trí nào trong tệp cấu hình xem của mô-đun, bố cục mặc định sẽ được sử dụng.

-1

Hoặc nếu bạn là hành động bên trong, bạn có thể sử dụng đơn giản:

$this->setLayout('name_file_layout_without_extension'); 

Và sau khi bạn có thể làm việc trên mẫu mà bạn đang sử dụng bên trong mô-đun.