2014-01-29 76 views
0

我有兩個zend表單屬於數據庫中的一個表,爲了確保用戶沒有發現它懶得完成它,但我有我的代碼在我的模型中有問題。儘管我嘗試了很多解決方案,但我仍然收到這個錯誤。Zend框架相關

致命錯誤:調用一個成員函數保存()非對象上

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

根據您遇到的錯誤,您嘗試的方法調用都不起作用。

你應該使用一個調試器,var_dumpprint_r先檢查什麼

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

回報。

在你的情況,似乎返回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> 

回報($行); //正確答案