Запустить запросы, не связанные с контроллером в CakePHP - PullRequest
1 голос
/ 09 августа 2011

У меня есть контроллер для заданий с моделью задания.

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

Я пробовал несколько вещей, но, похоже, не смог добиться какого-либо прогресса в этом.

Может кто-нибудь помочь мне с этим?

1) выбор полей в соединении для клиентов и пакетов (сложные условия) 2) перебор результатов и вставка / обновление значений в задании 3) отображение заданий

Заранее спасибо.

Маникандан

Ответы [ 2 ]

5 голосов
/ 09 августа 2011

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

$this->loadModel('Customer');
$customers = $this->Customer->find('all');

Альтернативы включают:

ClassRegistry::init('Customer')->find('all');
// or (equivalent)
$customer = ClassRegistry::init('Customer')
$customers = $customer->find('all');

или:

App::import('Model', 'Customer');
$customer = new Customer();
$customers = $customer->find('all');
2 голосов
/ 31 мая 2012

это может также работать, если поместить его в beforeFilter в AppController:

if($this->referer() == '/users/login' && $this->Auth->user()){
    $this->loadModel('User');
    $this->User->id = $this->Auth->User('id');
    $this->User->saveField('last_login', date(DATE_ATOM));
}
...