2011-07-21 84 views
-1

我一直在掙扎與此,我有兩個模型,拿起字段值顯示有一個模型Cgridview數據,該模型包含了一些的id,其值在不同的表Yii框架 - 從其他模式

所以,我已經添加

'值'=> 'TblAreaoflaw ::模型() - > FindByPk($數據 - > typeoflaw) - > areaoflaw'

它給這個錯誤

「好一會非物件財產「

可能是由於這個原因,一些記錄不存在於TblAreaoflaw。我們不能通過isset檢查這一行嗎?

當我把靜態值,它做工精良,像

'值'=> 'TblAreaoflaw ::模型() - > FindByPk(5) - > areaoflaw',

任何人都可以請幫助

非常感謝

+0

拉里烏爾曼是誰可以幫助你在YII的人 –

回答

0

確保:

TblAreaoflaw實際上是一個模式,我懷疑它的Areaoflaw

你有數據庫中指定的主鍵這是ID(5)你逝去的

0

嘗試:

'value'=> '(TblAreaoflaw::model()->FindByPk($data->typeoflaw)->areaoflaw) ? 
: "default or null value"' 

顯然替換到任何你想要的空字符串。您可能需要調整使用的條件!empty()或類似的,但看看它是如何發生的。 (如果你這樣做,或者不使用PHP 5.3,請使用完整的三元表達式。)

1

您得到的錯誤是因爲此表達式TblAreaoflaw::model()->FindByPk($data->typeoflaw)正在返回null。這意味着你實際上試圖讓null->areaoflaw將無法​​正常工作(這是錯誤消息「試圖獲得非對象的特性」澄清)。

我最好的猜測是,$data->typeoflaw返回該TblAreaoflaw模型不存在的主鍵。