2014-01-29 5 views
0

У меня есть две формы zend, которые принадлежат к одной таблице в базе данных, разбил ее, чтобы убедиться, что пользователь не находит ее ленивой, чтобы закончить ее, но у меня есть проблема с моим кодом в моей модели , Я продолжаю получать эту ошибку, хотя я пробовал множество решений.Связанный с Zend-Framework

Фатальная ошибка: Вызов функции-члена Save() на не-объект

public function smmedetailssmmedetails($companyname, $companytradingname) 
{ 
    $data = array(    
     'companyname' => $companyname, 
     'companytradingname' => $companytradingname, 
    ); 
    return $this->insert($data); 
} 

public function smmesdetails2smmedetails($smmeid, $numberemployees, $ownership) 
{ 
    $row = $this->find($smmeid)->current(); 
    $row->numberemployees = $numberemployees; 
    $row->ownership = $ownership; 
    return $row->save(); //problem lies on this line 
} 

Пытались, используя следующие коды/методы

$this ->row->save(); 
$row->save(); 
$this ->row->save(); 
return $this -> row->save(); 

ответ

1

В соответствии с полученной вами ошибкой ни один из методов, которые вы пытаетесь использовать, будет работать.

Вы должны сначала проверить, что

$this->find($smmeid)->current(); 

возвращается с использованием либо отладчик, var_dump или print_r.

В вашем случае, кажется, что либо null, либо что-то, что не является объектом, возвращается.

1

Это означает, что $row не является объектом (должно быть), но, вероятно, это null. Это означает, что метод find() не получил никакого результата из базы данных.

Вы должны проверить значение $smmeid и проверить, существует ли такая строка в базе данных.

Используйте функцию var_dump для проверки любой переменной в любой строке. Вот как вы можете отладить свою проблему.

+0

$ smmeid является основным ключом, я строю формы, у каждого есть свой собственный контроллер, и, щелкнув далее, вы переходите к следующей форме, мне нужно, чтобы информация оставалась в той же строке в таблице –

0

Эй, ребята, я получил его с помощью этого метода ниже, я отметил codeblur ответ, потому что это было близко спасибо за print_r информации:

Example #1 print_r() example 
<pre> 
<?php 
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z')); 
print_r ($a); 
?> 
</pre> 

возврата ($ строка); // правильный ответ