【问题标题】:pass value in function cakephp 2在函数 cakephp 2 中传递值
【发布时间】:2017-08-09 20:51:33
【问题描述】:

我有计算教师平均率的函数,我将平均值保存在变量 $result 上,我想将变量传递给 get_teacher_average_rating 并打印平均值,但我尝试这样做我有错误

注意(8):未定义变量:结果 [APP/Controller/RatingSchoolsController.php,第 30 行] 警告 (2): 无法修改标头信息 - 标头已由(输出 开始于 /Applications/MAMP/htdocs/classera-core-code/lib/Cake/Utility/Debugger.php:795) [APP/Controller/AppController.php,第 67 行]

如何解决这个问题并在get_teacher_average_rating 中打印平均值

public function set_teacher_average_rating($result)
    {
        $this->autoRender = false;
        if($this->request->is('get'))
        {
            $author_id = $this->request->query('author_id');//
            $rate = $this->Rating->find('all',array('conditions'=>array('author_id'=> $author_id), 'fields'=> array('AVG(Rating.value) as averageRating'), 'recursive' =>-1));

            $average = $rate[0][0]['averageRating'];
            $result = array('success'=>'1' , 'average' => $average );
        }
        else{
            $result = array('success'=>'0','message'=>'request type is not GET');
        }
        echo json_encode($result);
    }


public function get_teacher_average_rating()
    {
        $this->autoRender = false;
                $average = $this->set_teacher_average_rating($result);
                $rate = $this->Rating->find('all',array('conditions'=>array('author_id'=> $author_id)));

                     //get rate teacher
                                echo json_encode($average);



        }

【问题讨论】:

  • $average = $this->get_teacher_average_rating($result); 什么$result在这里?
  • get_teacher_average_rating 中的 $result 来自哪里?从视图?会话?
  • 所以get_teacher_average_rating 调用get_teacher_average_rating?你确定你做得对吗?
  • @u_mulder 抱歉,我编辑了我的 cod get_teacher_average_rating 调用 set_teacher_average_rating
  • @u_mulder 我想从方法 set_teacher_average_rating 传递 $result 并在方法 get_teacher_average_rating 中打印这个值你能帮我吗

标签: php cakephp


【解决方案1】:

如果函数 set_teacher_average_rating() 未被任何其他函数调用,请尝试此操作:

public function set_teacher_average_rating()
    {
        $this->autoRender = false;
        if($this->request->is('get'))
        {
            $author_id = $this->request->query('author_id');//
            $rate = $this->Rating->find('all',array('conditions'=>array('author_id'=> $author_id), 'fields'=> array('AVG(Rating.value) as averageRating'), 'recursive' =>-1));

            $average = $rate[0][0]['averageRating'];
            $result = array('success'=>'1' , 'average' => $average );
        }
        else{
            $result = array('success'=>'0','message'=>'request type is not GET');
        }
        return $result;
    }


public function get_teacher_average_rating()
    {
        $this->autoRender = false;
                $average = $this->set_teacher_average_rating();
                $rate = $this->Rating->find('all',array('conditions'=>array('author_id'=> $author_id)));

                     //get rate teacher
                                echo json_encode($average);



        }

【讨论】:

  • 我尝试了您的代码,但显示错误消息“允许的内存大小为 134217728 字节已用尽”
  • 然后修复了这个错误。网上有很多例子可以修复这个错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
相关资源
最近更新 更多