Yii框架 - 从其他模型中获取字段值

时间:2011-07-21 11:33:10

标签: yii

我一直在努力解决这个问题,我有两个模型并在Cgridview中显示一个模型的数据,这个模型包含一些id,其值在不同的表中

所以,我添加了

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

给出了这个错误

“试图获取非对象的属性”

可能是由于这个原因,TblAreaoflaw中不存在某些记录。我们不能通过isset检查这一行吗?

当我输入静态值时,它运行良好,如

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

有人可以帮忙吗

非常感谢

3 个答案:

答案 0 :(得分:1)

您得到的错误是因为此表达式TblAreaoflaw::model()->FindByPk($data->typeoflaw)正在返回null。这意味着您正在有效地尝试使null->areaoflaw无效(这是错误消息“试图获取非对象的属性”澄清)。

我最好的猜测是$data->typeoflaw会返回TblAreaoflaw模型的不存在的主键。

答案 1 :(得分:0)

确保:

TblAreaoflaw实际上是一个模型,我怀疑它的 Areaoflaw

您有数据库指定的主键,即您传递的 id (5)

答案 2 :(得分:0)

尝试:

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

显然可以将null字符串替换为您想要的任何内容。您可能需要调整要使用的条件!empty()或类似,但看看它是怎么回事。 (如果你这样做或者没有使用PHP 5.3,请使用完整的三元表达式。)