나는 Student, Course 및 StudentCourse의 3 가지 모델을 가지고 있습니다. 'hasAndBelongsToMany'코스, hasMany '코스, StudentCourse'belongsTo '학생 및 코스. 학생이 코스에 등록하기 전에 몇 가지 사항을 확인해야합니다 (예 : 코스가 가득차 있거나 과거에 코스를 수강했는지 등). 함수 내에서 로직을 처리 할 수는 있지만 어떤 모델에서 그 함수를 배치해야합니까? 그리고 어떻게 호출해야합니까?CakePHP :이 기능을 배치 할 곳
// Student Model
public function canSignupForCourse($studentId, $courseId) {
// is the course full?
// have they signed up before, etc
// return either true or false
}
// Could it then be called anywhere as:
if($this->Student->canSignupForCourse($studentId, $courseId)) {
// etc
}
또는 그것을 할 수있는 더 나은/쉬운 방법이있다 (그리고, 나는 studentid 모두를 보내고마다 courseid해야합니까) : 내가 생각하는 한 가지 방법이었다?
이것을 사용하여 새로운 CourseMembership을 만드는 방법 (어떻게 course_id 및 student_id를 설정할 수 있습니까?) – execv
다른 모델과 동일합니다. 학생이 로그인하여 강좌에 등록하려고 시도합니다. 그의 학생 ID는 http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#accessing-the-logged-in-user와 같은 것으로 액세스 할 수 있습니다. course_id는 게시물 데이터와 함께 제출되어야합니다. 그런 다음 컨트롤러에서 student_id를 $ this-> request-> data에 추가하고 $ this-> CourseMembership-> create();를 호출하면됩니다. $ this-> CourseMembership-> save ($ this-> request-> data); 멋진 점은 출석 및 성적과 같은 특정 회원 정보에 추가 정보를 추가 할 수 있다는 것입니다. – Vigrond