[英]Access a variable from an non associated Controller in Cakephp
我正在使用cakephp中的“表單”來開發測驗。 我已經在CourseModules控制器($ passMark)中聲明了一個變量,開發測驗的HR可以設置用戶成功完成測驗所需的通過百分比。 我已經像這樣聲明了變量:
case "Quiz":
$quiz = $this->CourseModules->FormTemplates->find('list')->where(['active'=>true,'type'=>'Quiz']);
$passMark = [100=>'100%',90=>'90%',80=>'80%',70=>'70%',60=>'60%',
50=>'50%',40=>'40%',30=>'30%',20=>'20%',10=>'10%',0=>'0%'];
$this->set('passMark',$passMark);
$this->set('quiz',$quiz);
break;
然后,我需要在FormsController中訪問變量$ passMark,以便可以對照另一個變量($ percCorrect)進行檢查。 $ percCorrect在我的窗體控制器中聲明為:
$percCorrect = $numberCorrect / $numberOfQuizQuestions * 100;
$this->set('percCorrect', $percCorrect);
我想執行一條if語句,因此請檢查$ percCorrect是否<$ passMark,但是我不確定如何訪問$ passMark,因為CourseModules與Forms Controller沒有關聯。
我確實有另一個名為CoursesEnrolledModules的控制器,該控制器與此相關,所以我想知道是否可以通過那里訪問它嗎?
我在FormsController中有以下代碼來加載CoursesEnrolledModules:
//Check if courses_enrolled_module_id is set
$courses_enrolled_module_id = $this->request->getQuery('courses_enrolled_module_id');
//If so make sure it is valid
if($courses_enrolled_module_id){
$this->loadModel('CoursesEnrolledModules');
$coursesEnrolledModule = $this->CoursesEnrolledModules->get($courses_enrolled_module_id,
['contain'=>[],
]);
//Pass variable to view so we can show correct back button
$this->set('coursesEnrolledModule', $coursesEnrolledModule);
//Also after save we will redirect.
}
每當您問自己“如何從另一個控制器訪問一個控制器”時,只需將自己停在那里並考慮其他選擇即可。 在這種情況下,應將陣列放置在中央位置,所有可能需要它的地方都可以使用它。 可能將其包含在app.php的配置中,然后在需要的任何位置使用Configure :: read(...)進行引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.