ввиду вызова функции контроллера в торт php - PullRequest
1 голос
/ 16 ноября 2009

мне нужна помощь

, когда я нахожусь на моем index.ctp / view.ctp, мне нужно вызвать функцию контроллера для выполнения некоторой задачи. какой код я могу использовать для выполнения этого действия?

  • Мне нужно вызвать функцию контроллера, которая отправляет значение (user_id) функции и вызывает у меня определенное действие. Как я могу это сделать? я мог бы также вызвать функцию JavaScript.

Ответы [ 3 ]

11 голосов
/ 16 ноября 2009

Если вам нужно вызвать функцию Controller из View, вы делаете это неправильно. Это неверный MVC.

Сказав, что requestAction будет правильным, хотя и самым медленным способом сделать это. Вы можете взломать немного больше и получить экземпляр Controller от ClassRegistry. Но я бы настоятельно рекомендовал вам реструктурировать поток программ, чтобы вам не нужно было делать это для начала.

1 голос
/ 22 ноября 2009

Вам, вероятно, следует выполнить задачу в контроллере, прежде чем вы получите представление. Но если вам нужно немного поработать над отображаемыми данными, вы можете подумать о создании класса Helper.

  1. http://book.cakephp.org/view/101/Creating-Helpers
0 голосов
/ 16 ноября 2009

Если ваша задача не генерирует никаких выходных данных - вы можете рассмотреть возможность сделать это в контроллере еще до того, как доберетесь до стадии просмотра.

Если ваша задача имеет какую-либо форму вывода - используйте requestAction с элементом Element

  1. http://bakery.cakephp.org/articles/view/creating-reusable-elements-with-requestaction

Эта ссылка должна быть хорошей отправной точкой . В его блоге также есть хорошие сообщения Марка Стори, в которых подробно описывается фактическая эффективность requestAction, и это не так уж и плохо, если вы не злоупотребляете им повсеместно.

  1. http://mark -story.com / сообщения / просмотр / как-используя-requestaction-увеличенная производительность на моем сайте
  2. http://mark -story.com / узлы / вида / восстановительно-requestaction использование в Вашем CakePHP-сайтах-с-жир модель

Если вам действительно нужно запускать какую-то логику предсказуемым образом, и эта логика может происходить в нескольких местах, вы также можете использовать шаблон наблюдателя событий для запуска действия контроллера, которое вам нужно запустить.

  1. http://cakealot.com/2009/04/eventful-a-cakephp-event-system/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...