2013-03-16 2 views
1

им, используя торт в течение некоторого времени, и теперь я слегка модифицированный контроллер страницы, я хочу, чтобы использовать его в моем default.ctp, я импортировать его сФатальная ошибка: Class «PagesController» не найден в

App::uses('PagesController', 'Controller'); 

или

App::import('Controller', 'Pages'); 

оба работают на моем LOCALHOST XAMPP, ни на OpenShift веб-сервер. что бы я ни делал, я получаю фатальную ошибку, класс не найден. были проблемы с поиском в этой теме в течение 2 часов, и я чувствую, как я нажимаю на стену здесь. помогите :)

ответ

0

Я постараюсь избежать этих вызовов и использовать соглашения CakePHP. Разница между вашей локальной копией XAMPP и копией OpenShift, вероятно, связана с запуском разных версий CakePHP, но это не имеет значения, если вы следуете соглашениям.

Лучше всего поместить все с помощью PagesController в приложение foler/View/Pages. Таким образом, CakePHP обрабатывает все импорт, требует, маршрутизацию и т. Д. Кроме этого, помните, что путь приложения в OpenShift - это/php/app/(в отличие от XAMPP/app /). Я думаю, это может вызвать проблемы, если у вас есть пользовательские контроллеры. Надеюсь это поможет!

Редактировать: Я просто понял, что по умолчанию.ctp вы имеете в виду файл макета. Мне лично не нравится вызывать контроллеры в макете. Я предпочитаю использовать для этого элементы или помощники. Кроме того, PagesController на самом деле не предназначен для включения в макет сайта. Он предназначен только для файлов в папке/app/View/Pages.

+0

он работает здесь, и я хочу его на каждой странице, поэтому в основном я должен добавить его в макет в любом случае: | –

+0

В качестве продолжения ознакомьтесь с документами помощников, чтобы узнать, может ли он справиться с необходимой логикой. http://book.cakephp.org/2.0/en/views/helpers.html – Steven

0

ОК, я использовал requestAction вместо этого, и это работает. :) , чтобы решить аналогичную проблему, можно использовать $ pages = $ this-> requestAction ('pages /');

then 'foreach' массив $ pages всякий раз, когда вам нужно. ВАЖНО! в функции вашего контроллера, которая создает страницу (в этом случае контрольные страницы ControlController и функция «index») не забывают ВОЗВРАТИТЬ объект $ pages u compose, а не просто «устанавливать» его, как обычно. :)

Смежные вопросы