Intereting Posts
Автоматический вход на текущий веб-сайт, если пользователь вошел в систему на другом веб-сайте Как добавить дополнительные версии PHP в MAMP как сделать разбиение на страницы в этом коде? Установите флажок, если он установлен Почему состояние флажка не всегда передается скрипту PHP? Как определить, является ли список подмножеством другого списка? 413 Слишком сложная задача запроса – проблема с отправкой файлов PHP Script для редактирования записей DNS в CPanel PHP debug_backtrace в производственном коде для получения информации о методе вызова? Разница PHP между Curl и HttpRequest Программно построение htpasswd Как сделать глобальные вспомогательные функции в laravel 5? Сравните группу тегов, чтобы найти сходство / оценку с помощью PHP / MySQL PHP: что является альтернативой empty (), где строка «0» не считается пустой? Стратегия для разработки версий с именами и без имен с одним и тем же PHP-кодом

Вызов функции AppModel в AppController для cakephp

У меня есть функция, которую я хочу, чтобы все мои контроллеры могли использовать, поэтому я определил ее в AppController. Теперь часть того, что эта функция будет делать, не имеет никакого бизнеса в контроллере, и поэтому она должна быть в модели, но поскольку это универсальная операция, она кажется правильной только в AppModel. Моя функция выглядит следующим образом:

class AppController extends Controller { public function i_need_this_everywhere ($term) { // do some stuff // this is the line that is an issue // it seems like this should be simple and work, but no variation of this is working $value = $this->App->get_some_cool_data($term); return $value; } } 

Я просто хочу иметь возможность вызвать функцию AppModel из AppController. Я пробовал следующее:

 // I have tried several variations of this. $this->loadModel('AppModel'); $this->AppModel->get_some_cool_data($term); 

Но это тогда жалуется на отсутствие таблицы базы данных под названием AppModel, и в этот момент в AppModel я попытался установить:

 public $useTable = FALSE; 

Но это ударит все приложение так … Теперь у меня нет идей. Любая помощь будет принята с благодарностью.

Solutions Collecting From Web of "Вызов функции AppModel в AppController для cakephp"

Все ваши модели должны наследовать от AppModel, поэтому почему бы не вызвать $this->AnyModel->get_some_cool_data($term); вместо? В любом случае AppModel должен быть абстрактным классом – вы почти никогда не хотите его создавать, вы просто используете его как базовый класс.

Кроме того, это должно быть $useTable = false; не $usesTable . Помните, что все ваши модели должны унаследовать от AppModel, поэтому все ваши модели также не будут использовать базу данных, что, вероятно, является источником ваших ошибок.

Чтобы решить эту проблему для меня, решение, которое работало, но я неудовлетворен, заключается в том, чтобы разместить эти функции в AppModel а затем вызвать их из любой модели:

 $this->WhatEverModelIAmIn->the_general_function_I_need($some_argument);