2016-01-07 5 views
1

я получаю следующие ошибки при просмотре индексаФатальная ошибка: Вызов функции-члена

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; 
    } 
} 

Любые идеи, что проблема здесь?

+0

Что такое зона здесь? –

+0

как вы получаете '$ this-> Zone'? – roullie

+0

Вы загрузили модель 'Zone'? какую версию торта вы используете? – roullie

ответ

0

Zone атрибут, кажется, быть пустым или не является действительным объектом,
Попробуйте проверить это перед обращением к 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; 
} 
} 
+0

@Halayem Anis: Я думаю, что вам не хватает'! 'Перед' is_object ($ zone) ' –

+0

@AddWebSolutionPvtLtd спасибо ... я исправил его –

0

Это означает, что «зона» должна быть класс, который содержит функцию findAllByStateId(), но в этом случае, когда он пытался запустить findAllByStateId(), зона не была классом, поэтому она не могла.

Наиболее вероятная причина в том, что все, что создает экземпляр «Zone», потерпело неудачу, и вы не заметили сбоя, поэтому, когда он используется, программа падает.

Смежные вопросы