2012-03-08 5 views
0

я создал функцию в моей AppController в sendemails:CakePHP: Модели в AppController

protected function sendEmail($studentId = null, $courseId = null, $action = null) { 

    $course = $this->Course->find('first', array('conditions' => array('Course.id' => $courseId))); 
    if(! $course) { 
     throw new NotFoundException(__('Invalid course')); 
    } 
} 

Я хочу, чтобы проверить ход и ученика, но в зависимости от того, какой контроллер я называю его от, я должен изменить my $ this-> xxx-> find. Единственное другое решение, которое я придумал, - это проверка/отправка заголовка данных курса $ course/$ student, но я все же хотел бы запустить ручной SQL-запрос для сохранения журнала электронной почты (я бы столкнулся с тем же проблема). Любая помощь?

+1

Если я правильно понимаю; просто загрузите модель «Курс» в свой «AppController». У каждого контроллера будет доступ к нему. Таким образом, любой контроллер сможет вызвать функцию. '$ this-> loadModel ('Course');' в функции 'sendEmail' должен это делать. – Ross

ответ

0

Я не понимаю, очень хорошо, ваша проблема, но:

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

$course = $this->Course 
$student = $this->Student 
    if(!empty($student) && !empty($course)): $status = 3 endif; 
    if(empty($student)): $status1 = 1 else: $status = 0 endif; 
    if(empty($course)): $status2 = 2 else: $status = 0 endif; 
    if(empty($status)): 
     $array=array($status1,status2); 
    else: 
     $array=array($status); 
    endif; 
     foreach($array as $key => $value) 
     if($value == 1):throw new NotFoundException(__('Invalid course')); 
     if($value == 2):throw new NotFoundException(__('Invalid student')); 
     if($value == 0):throw new NotFoundException(__('Invalid course and student')); 
     if($value == 3):throw new NotFoundException(__('Valide course and student')); 
     endforeach; 
Смежные вопросы