Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос о построении вида в Zend

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
imedia
Отправлено: 02 Февраля, 2016 - 13:25:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Очень прошу откликнутся тех кто знаком с Зендом.
Быть может вам известна ситуация когда ты застрял и не можешь сдвинуться с мертвой точки, такие люди меня поймут.
Контроллер выглядит так
PHP:
скопировать код в буфер обмена
  1.  
  2.  public function indexAction()
  3.     {
  4.         // get the article from the persistence layer, etc...
  5.  
  6.         // Get the "layout" view model and set an alternate template
  7.         $layout = $this->layout();
  8.         $layout->setTemplate('layout/layout');
  9.         // Create and return a view model for the retrieved article
  10.         $view = new ViewModel(array('article' => 'Hello world'));
  11.         $view->setTemplate('content/article');
  12.         return $view;
  13.     }
  14.  

Не могу понять почему выводится только шаблон, и вообще не могу найти инфы чем шаблон от вида отличается, быть может подскажите?
То есть файл content/article.phtml не выводится вообще
В конфиге модуля у меня так относительно вида
PHP:
скопировать код в буфер обмена
  1.  
  2. 'view_manager' => array(
  3.         'display_not_found_reason' => true,
  4.         'display_exceptions'       => true,
  5.         'doctype'                  => 'HTML5',
  6.         'not_found_template'       => 'error/404',
  7.         'exception_template'       => 'error/index',
  8.         'template_map' => array(
  9.             'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
  10.                         'content/article'           => __DIR__ . '/../view/content/article.phtml',
  11.             'catalog/index/index' => __DIR__ . '/../view/catalog/index/index.phtml',
  12.             'error/404'               => __DIR__ . '/../view/error/404.phtml',
  13.             'error/index'             => __DIR__ . '/../view/error/index.phtml',
  14.         ),
  15.  
 
 Top
caballero
Отправлено: 02 Февраля, 2016 - 14:27:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




вид - это скорее логическое понятие.
А шаблон это часть физической реализации вида. Вид может использовать шаблоны а может и не использовать это уже от движка зависит.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
imedia
Отправлено: 02 Февраля, 2016 - 16:28:58
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




ну а по сути если вы Зенд знаете то почему шаблон видно а вид нет?
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Февраля, 2016 - 17:08:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




imedia пишет:
То есть файл content/article.phtml не выводится вообще

Сам код верный.
Покажите содержимое файла: view/content/article.phtml.
(Добавление)
Полагаю, он у Вас пуст.
Вставьте

(Отредактировано автором: 02 Февраля, 2016 - 17:14:38)

 
 Top
teddy
Отправлено: 02 Февраля, 2016 - 19:17:29
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




imedia пишет:
Быть может вам известна ситуация когда ты застрял и не можешь сдвинуться с мертвой точки, такие люди меня поймут.

Известно. Нужно стараться проходить через это самостоятельно, искать ответ во всякой дыре, в подвале, чулане и прочих потемках. Так будет всегда при работе с незнакомыми технологиями, привыкайте.

imedia пишет:
Не могу понять почему выводится только шаблон, и вообще не могу найти инфы чем шаблон от вида отличается, быть может подскажите?

Шаблон это такой же экземпляр Zend\View\Model\ViewModel как и тот, что вы возвращаете из экшена. Только он создается не явно, а самим фреймворком. В контроллере доступен в качестве плагина layout, к которому вы и обращаетесь.
Это своего рода рутовый(root) view, к которому так же не явно как дочерний прицепляется экземпляр того ViewModel, который вы возвращаете из экшена.

Для рутового вью вы задали алиас шаблона layout/layout. Это означает, что в качестве повторяющегося шаблона будет использован тот файл, который соответствует записи layout/layout в конфиге. То есть __DIR__ . '/../view/layout/layout.phtml'.

Теперь, для того, что бы отобразить дочерний шаблон, нужно его отрендерить в родительском шаблоне(в файле, который соответствует layout/layout).
По умолчанию каждый экземпляр ViewModel имеет название content (в фреймворке именуется как captureTo). Используя это название, можно отрендерить соответствующую ViewModel.

Полагаю, что в файле, который является корневым шаблоном, просто не рендерится ViewModel. Напишите echo $this->content; в основом шаблоне.
Если ничего не изменится, то скорее всего armancho7777777 прав, ваш шаблон пуст. Ну или кто то поменял название по умолчанию для ViewModel. На всякий случай можно проверить, выполнив код var_dump($view->captureTo());

В принципе этой информации должно быть достаточно что бы решить проблему.
Более подробно о видах в ZF написано в официальной документации.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB