2012-04-21 8 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です)。

あなたの回答モデルは、とにかく$ belongsToを介してユーザーと関係する必要があります。 したがって、あなたはまだ

$this->Answer->User->... 
経由でユーザーオブジェクトにアクセスできます
関連する問題