2012-04-21 37 views
0

在我正在开发的应用程序,我创建了一个形式view.ctp文件:如何解决 - 调用成员函数save()在蛋糕php中的非对象?

<?php 
echo $form->create('Answer',array('action'=>'addanswer')); 
echo $form->input('ques',array('value'=>'1')); 
$userInfo=$this->Session->read('Auth.User'); 
$user=$userInfo['id']; 
echo $form->input('user',array('value'=>$user)); 
echo $form->input('answer'); 

echo $form->end('Submit answer'); 
?> 

而在answers_controllers.php文件,我有以下代码:

<?php 
class AnswersController extends AppController{ 
    var $name= 'Answers'; 
    var $uses = array('User'); 

    function addanswer(){ 
     if(!empty ($this->data)){ 
      echo $this->data; 
      if($this->Answer->save($this->data)){ 

       $this->Session->setFlash('The answer has been addedd successfully'); 
       $this->redirect(array('action'=>'index')); 
      } 
      else{ 
       $this->Session->setFlash('The answer was not saved. Please re enter the details'); 
      } 
     } 
     $this->set('title_for_layout','Add a new Answer'); 
    } 
} 
?> 

但当我按提交答案按钮(在view.ctp中提到)时,我得到一个非对象的成员函数save()的调用。 一个非常类似于这个代码的代码可以很好地工作,但这不起作用。

我是新来的蛋糕PHP,所以任何关于如何解决这个问题的帮助将不胜感激。

非常感谢您提前。

回答

0

不使用

var $uses = array('User'); 

!否则就是在“摧毁”真正的控制器模型(在这种情况下可能是Answer)。

您的Answer模型应该通过$ belongsTo与用户建立关系。 因此,您仍然可以通过

$this->Answer->User->... 
访问用户对象
相关问题