从Cakephp中的非关联控制器访问变量

从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'=>

我正在用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,以便对照另一个变量$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引用它。。。任何你需要的地方