Запустить запросы, не связанные с контроллером в CakePHP

У меня есть контроллер для работы с моделью Job.

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

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

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

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

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

Manikandan

2 ответа

Решение

Это может также работать, если поместить его в 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));
}

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

$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');
Другие вопросы по тегам