2012-01-25 25 views
1

次のエラーをスローアップしているCakePHPコントローラコードがあります。 '致命的なエラー: 「オブジェクト」。CakePHP致命的なエラー:非オブジェクト(コントローラ)のメンバ関数create()を呼び出す

if ($this->request->is('post')) { 
      $this->MonthlyReturn->create(); 
      $this->MonthlyReturn->saveField('company_id', $cid); // Assign current company ID to this monthly return before saving 
      if ($this->MonthlyReturn->save($this->request->data)) { 
       $this->Session->setFlash(__('The monthly return has been saved')); 
       $this->redirect(array('action' => 'index')); 
      } else 
      { 
       $this->Session->setFlash(__('The monthly return could not be saved. Please, try again.')); 
      } 
     } 

任意の助けを大幅に高く評価されるであろう次のよう

制御コードです。

+0

私たちのコントロールラインの最初の行を見せてもらえますか? – ori

+0

' App :: uses( 'AppController'、 'C​​ontroller'); /** * MonthlyReturnsコントローラ * * @property MonthlyReturn $ MonthlyReturn */ クラスMonthlyReturnsControllerはのAppController { \t変数$用途=配列( '従業員'、 '会社')を拡張し; ' –

答えて

10

あなたは、コントローラ内部で$usesを定義する場合は、明示的MonthlyReturnモデルをロードする必要があります。

var $uses = array('MonthlyReturn','Employee','Company'); 

をあなたが最初にこの

ます$ this-> loadModelのようなモデルをロードする必要がありdocumentation

+0

は私を信じてすることはできませんそれを逃した...ありがとう、あなたは私に多くの面倒を救った! –

+0

悲しいことに、私はあなたの答えを投票するのに十分な担当者がいません... –

+4

EmployeeとCompanyがMonthlyReturnに関連している場合は少しのコメントがあります( '$ uses'を定義することなく)。彼らが関連しているなら、 '$ this-> MonthlyReturn-> Employee'と' $ this-> MonthlyReturn-> Company'を通してこれらのモデルにアクセスすることができます。これはもっとCakePHPのやり方です。私はあなたが従業員と会社を '$ uses 'を通してコントローラにロードするときに、関連するすべてのモデルもそれらのモデルにロードされることになります(彼らは既にMontlyReturn内で利用可能ですが)メモリ負荷が増加します。 – Joep

0

を参照してください。 ( "MonthlyReturn");

ここで、MonthlyReturnはモデルの名前です。

関連する問題