0

在我正在开发的应用程序中,我在 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()。与此代码非常相似的代码运行良好,但这不起作用。

我是cake php的新手,因此将不胜感激有关如何解决此问题的任何帮助。

非常感谢您提前。

4

1 回答 1

0

不要使用

 var $uses = array('User');

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

无论如何,您的 Answer 模型应该通过 $belongsTo 与用户建立关系。因此,您仍然可以通过以下方式访问用户对象

$this->Answer->User->...
于 2012-04-21T10:01:51.067 回答