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 を介してユーザーと関係を持つ必要があります。したがって、引き続き User オブジェクトにアクセスできます。

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