Приставката Zend е намерена в изглед, а не в оформление

Имам плъгин, който извлича списък с бутони. Когато извикам този плъгин от изгледа (echo $this->GetAdminButtons()), той работи добре. Но трябва да извикам този плъгин от layout.phtml и когато го направя, приложението просто спира (бял екран, без изход)

Когато се опитам да получа съобщението за изключение, получавам тази грешка:

Plugin by name 'GetAdminButtons' was not found in the registry;
used paths: 
    Zend_View_Helper_Navigation_: Zend/View/Helper/Navigation/ 
    Zend_View_Helper_:            Zend/View/Helper/:./views/helpers/

В приложението.ini

resources.view.helperPath.Admin_View_Helper = "Admin/View/Helper"

Което ме обърква, защото работи добре в изгледа .phtml файлове

Благодаря предварително,


person Peter    schedule 28.07.2012    source източник
comment
Къде се намира помощникът? views/helpers/GetAdminButtons.php?   -  person Tim Fountain    schedule 28.07.2012
comment
Намира се в библиотеката/Admin/View/Helper/GetAdminButtons.php И тази директория е зададена като помощен път в application.ini.   -  person Peter    schedule 28.07.2012
comment
Този път не е включен в списъка с пътища в грешката. Бихте ли могли да редактирате въпроса си, за да включите съответната част от вашия application.ini, където сте задали помощните пътища?   -  person Tim Fountain    schedule 28.07.2012
comment
Случайно да имаш редове в конфигурацията си, които започват resources.layout? Ако е така, работи ли, ако ги преместите над линиите на изгледа?   -  person Tim Fountain    schedule 29.07.2012
comment
Линиите на оформлението вече бяха над линиите на изгледа. Също така се опитах да поставя файла във всяка известна папка с изгледи/помощници, но все още не успях. Някакви идеи?   -  person Peter    schedule 29.07.2012


Отговори (1)


Продължение на дискусията от коментарите. Опитайте да преместите resources.layout редовете във вашата конфигурация, така че да са след resources.view (моето предложение в коментара имаше нещата в грешна посока).

Мисля, че вашият проблем е, че оформлението се инициализира преди изгледа, поради което пътищата на изгледа не съществуват в оформлението.

person Tim Fountain    schedule 29.07.2012
comment
Превключих линиите и в двете посоки, за да видя дали има някаква разлика, но не. - person Peter; 29.07.2012
comment
Имате ли някакви _init методи във вашия клас за стартиране? - person Tim Fountain; 29.07.2012
comment
Да, имам няколко, също защитена функция _initViewHelpers() { $this-›bootstrap('layout'); $view = $this-›getResource('layout')-›getView(); } - person Peter; 29.07.2012
comment
Добре, някой на име _initLayout() или _initView()? - person Tim Fountain; 29.07.2012
comment
Това е същият проблем, само че на различно място. Опитайте да промените началния ред в този _initViewHelpers() на $this->bootstrap(array('view', 'layout')); Това го принуждава първо да стартира изгледа. - person Tim Fountain; 29.07.2012
comment
Това свърши работа! ($this-›bootstrap(array('view', 'layout'));) плъгинът се извиква! Супер си! Благодаря много! - person Peter; 29.07.2012