从Cakephp中的非关联控制器访问变量
我正在用cakephp中的“表单”开发一个测验。我在CourseModules控制器$passMark中声明了一个变量,在该变量中,开发测验的HR可以设置用户成功完成测验所需的通过百分比。我已经这样声明了变量:从Cakephp中的非关联控制器访问变量,php,cakephp-3.0,Php,Cakephp 3.0,我正在用cakephp中的“表单”开发一个测验。我在CourseModules控制器$passMark中声明了一个变量,在该变量中,开发测验的HR可以设置用户成功完成测验所需的通过百分比。我已经这样声明了变量: case "Quiz": $quiz = $this->CourseModules->FormTemplates->find('list')->where(['active'=>true,'type'=>
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,以便对照另一个变量$percorrect检查它$percCorrect在我的窗体控制器中声明为:
$percCorrect = $numberCorrect / $numberOfQuizQuestions * 100;
$this->set('percCorrect', $percCorrect);
我想执行if语句,以便在$percCorrect是否<$passMark时签入,但我不确定如何访问$passMark,因为CourseModules与Forms Controller没有关联
我有另一个叫做CoursesEnrolledModules的控制器,它是相关的,所以我想知道我是否可以通过它访问它
我的FormsController中有以下代码来加载CourseSenRolledModule:
//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引用它。。。任何你需要的地方