我有3個模型:學生,課程和學生課程。課程'擁有並且擁有許多'學生,學生擁有許多課程,學生課程屬於學生和課程。在學生註冊課程之前,我需要檢查幾件事情(例如:課程是否已滿,過去是否有該學生參加過課程等)。我可以處理函數內部的邏輯,但是我應該在哪個模型下放置該函數?而且,它應該如何被稱爲?我想到了一個辦法是: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 2012-02-22 23:17:43
與其他型號相同。假設一名學生已經登錄並試圖註冊一門課程。他的學生證可以通過像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 2012-02-23 00:33:52