2016-08-22 2 views
-1

Я просто изучаю Zend здесь:zend: используйте тот же самый индекс для разных контроллеров?

У меня есть разные контроллеры для разных отделов, чтобы отображать похожие, но разные данные.

Могу ли я использовать тот же индексный файл? Данные, которые отличаются друг от друга, определяются внутри контроллера, поэтому в противном случае я просто собираюсь копировать и вставлять один и тот же файл html ...

+0

Что вы хотите, неясно. Что вам нужно? Что вы пробовали? В чем проблема? – Unex

+0

У меня есть контроллер, такой как ShoesController, у него есть действие, подобное indexAction, а затем есть вид в каталоге представлений /views/shoes/index.phtml: так что если у меня также есть другой PantsController, у которого есть аналогичный, но не совсем тот же контроллер, с видом в /views/pants/index.html: но на самом деле оба индексных файла одинаковы (данные, которые различаются, определяются в контроллере) - мне нужно скопировать вставку индексного файла или есть какой-то способ повторно использовать его? – pnic

ответ

0
class BazBatController extends AbstractActionController 
{ 
    public function doSomethingCrazyAction() 
    { 
     $view = new ViewModel(array(
      'message' => 'Hello world', 
     )); 
     $view->setTemplate('foo/baz-bat/do-something-crazy'); 
     return $view; 
    } 
} 

Это устанавливает «сообщение» переменную в виде модели, и задает имя шаблона «Foo/БАЗ-летучей мыши/делать-то-с ума». Затем возвращается модель просмотра.

0

Да, вы можете повторно использовать шаблоны. Ваши шаблоны могут быть структурированы, как вам нравится, таким образом, создать общий index.phtml где-то, что имеет смысл для вас, а затем в контроллере действия просто скажите модель представления, чтобы использовать этот шаблон вместо того, что он делает по умолчанию:

class ShoesController extends AbstractActionController 
{ 
    public function indexAction() 
    { 
     $view = new ViewModel(); 
     $view->setTemplate('some/shared/index.phtml'); 
     return $view; 
    } 
} 

и сделайте то же самое в своем PantsController.

+0

о, да, эта деталь важен! благодаря! – pnic