我對Yii相當陌生,在嘗試製作我自己的博客應用程序時,我使用此函數爲我的帖子添加了評論。Yii,致命錯誤:在非對象上調用成員函數addComment()
不過,我已經根據理論做的一切,但我仍然得到一個:
Fatal error: Call to a member function addComment() on a non-object in /htdocs/blog/protected/controllers/PostController.php on line 63
我post.php中的模型類具有這樣的功能:
public function addComment($comment){
$comment->tbl_post_id = $this->id;
return $comment->save();
}
而且我PostController.php有這些兩個函數,一個用於創建註釋,另一個用於修改視圖文件。
public function actionView($id)
{
$post=$this->loadModel($id);
$comment=$this->createComment($post);
$this->render('view',array(
'model'=>$post,
'comment'=>$comment,
)); }
protected function createComment($post)
{
$comment=new Comment;
if(isset($_POST['Comment']))
{
$comment->attributes=$_POST['Comment'];
if($post->addComment($comment)) // **This is line 63**
{
Yii::app()->user->setFlash('commentSubmitted',"Your comment has been added.");
$this->refresh();
}
}
return $comment;
}
所以邏輯上,我呼籲使用後$> addComment Post模型類中的成員函數addComment,和模型的所有成員函數初始化吧?邏輯學家不應該這樣正確嗎?但是,我收到上述致命錯誤。
我在做什麼錯?
任何幫助,將不勝感激。
問候,
P.S - 我很抱歉,如果我做一些非常愚蠢的。
那好吧!知道了,謝謝你..我知道這確實是一個愚蠢的錯誤。 –
但是我有一個小小的疑問,那就是爲什麼$ comment變量正常工作,因爲它是對Comment的模型類的引用。我已經在課程的任何地方初始化了它? –
'$ comment = new Comment;'你已經在'createComment()'方法的第一行初始化它 – DonCallisto