致命错误:调用成员函数

时间:2016-01-07 09:57:25

标签: php cakephp

查看我的索引时出现以下错误

Fatal error: Call to a member function findAllByStateId() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/***/app/Controller/AjaxController.php on line 64

我的代码如下

 public function getzone($stateid="") {
    if(!empty($stateid))  {             
        $output =array();         
        $zonelist=$this->Zone->findAllByStateId($stateid);           
        foreach($zonelist as $zdata): 
             $output[$zdata['Zone']['id']]=$zdata['Zone']['name'];             
        endforeach; 
        echo json_encode($output);
        exit;
    } 
}

任何想法是什么问题在这里?

2 个答案:

答案 0 :(得分:0)

区域属性似乎为空,或者不是有效对象,
在访问 findAllByStateId()方法

之前,请尝试检查它
public function getzone($stateid="") {
if(!empty($stateid))  {             
    $output = array();         
    $zone    = $this->Zone;

    if (is_null($zone) || !is_object($zone)) {
        print 'zone is not a valid object';
        return json_encode($output);
    }

    $zonelist = $zone->findAllByStateId($stateid);           

    foreach($zonelist as $zdata): 
         $output[$zdata['Zone']['id']]=$zdata['Zone']['name'];             
    endforeach; 
    echo json_encode($output);
    exit;
} 
}

答案 1 :(得分:0)

这意味着' Zone'应该是一个包含findAllByStateId()函数的类,但在这个例子中,当它试图运行findAllByStateId()时,区域不是一个类,所以它不能。

最可能的原因是无论是什么造成了区域'实例已经失败,你没有抓住失败所以当它被使用时,程序就会失败。

相关问题