如何解决 - 在蛋糕php中的非对象上调用成员函数save()?

时间:2012-04-21 09:47:46

标签: cakephp xampp

在我正在开发的应用程序中,我在view.ctp文件中创建了一个表单:

<?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的新手,所以对于如何解决这个问题的任何帮助都将不胜感激。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

不要使用

 var $uses = array('User');

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

你的答案模型应该通过$ belongsTo与用户有关系。 因此,您仍然可以通过

访问User对象
$this->Answer->User->...