2010-08-11 1 views
0

Я не могу найти способ вызова другого контроллера в том же представлении. Самое близкое, что я нашел, это $ html-> link («Register User», array ('controller' => 'users', 'action' => 'register')).cakephp вызывает разные контроллеры в одном представлении?

Итак, я сделал учебник блога cakephp. У меня есть posts_controller.php, и теперь я хочу добавить в систему рейтинга звезд. Я искал некоторые вещи и получил эту отличную, уже проделанную систему оценки, которую вы можете скачать: http://www.reversefolds.com/articles/show/rating2

Теперь у меня есть два контроллера, rating_controller.php и post_controller.php.

Мой базовый маршрут, '/', указывает на действие индекса пост-контроллера. В view.ctp моего сообщения отображается одна запись в блоге, которую я хочу добавить в систему рейтинга в этом представлении. И для использования рейтинга мне нужно позвонить помощнику так:

echo $rfRating->ratingBar($ratingInfo); 

Когда я делаю это в файле view.ctp post. Он жалуется. Я пробовал общаться с var $helpers = array('blah'), но это не сработало, я просто закончил слияние контроллера рейтинга в post_controller, который я считаю глупым. Я могу использовать систему оценки и для других вещей.

Итак ... Я не знаю, что делать. На самом деле это ложь, я думаю, что две идеи, как справиться с этим. Но мне нужны критические замечания и другие решения, которые мои навыки Google не удались.

  1. Должен ли я просто внедрить всю систему рейтинга в app_controller.php? Чтобы каждый контроллер наследовал эту рейтинговую систему? Звучит глупо, потому что я не думаю, что для моей регистрации пользователя нужна рейтинговая система.

  2. Я искал другое решение, requestAction('blab'). Я думаю, что это позволяет мне ... вызвать другого контроллера в контроллере. Но это хмурится, потому что это убивает производительность. И я точно не знаю, как сделать это ха-ха или если он работает. Я называю контроллер рейтинга, но как его вспомогательная функция? Может быть, это узнает, если я добавлю var $ helpers = array ('rating');

В любом случае, спасибо вам заранее за то, что нашли время, чтобы прочитать это. Пожалуйста, укажите мне в правильном направлении.

ответ

2

У вас есть rating_controller, расширяющий posts_controller.

Это дает вам возможность выборочно решить, для каких страниц нужен модуль рейтингов.

+0

О, ничего себе, спасибо. Это ... что-то вроде этого, почему я не подумал об этом. Большое спасибо. – mythicalprogrammer