我有模型Comment扩展了CActiveRecord并且我定义了一个新变量private $ _postTitle = NULL;我在模型中有以下代码,如页面http://www.mrsoundless.com/php/yii/searching-and-sorting-a-column-from-a-related-table-in-a-cgridview/
中所述public function getPostTitle()
{
if ($this->_postTitle === null && $this->post !== null)
{
$this->_postTitle = $this->post->title;
}
return $this->_postTitle;
}
public function setPostTitle($value)
{
$this->_postTitle = $value;
}
我的问题是代码的目的是什么
&安培;&安培; $ this-> post!== null
如果我省略这段代码,我就不会得到结果。那怎么&& $ this-> post!== null实际上在这个模型中有效吗?
答案 0 :(得分:1)
$this->post !== null
它只是在保护你“试图读取空对象异常的属性”。
我想这是不太可能的,但也许你可能会发生没有帖子的评论,如果你试图阅读帖子的标题,它会崩溃,因为post等于null。
我希望我能解释
答案 1 :(得分:0)
我看到,$this->post
是与另一个模型的关系。
$this->post !== null
正在检查这种关系是否真的存在。
如果省略检查,即使该模型没有关系工作,代码也会尝试让标题$this->post
返回错误。