2016-10-02 7 views
5

CakePHP 3.0の問題に遭遇しています。これは私には意味がなく、あなたの助けが必要です。私は同じ名前のコントローラ(UsersController)を持つユーザと呼ばれるテーブル名を持っています。テーブル内のユーザーは問題なく表示できますが、ユーザーを挿入、変更、削除するとエラーが発生します。CakePHPでbooleanのメンバー関数success()を呼び出す

私は挿入を行うと、私はエラーメッセージが出ます:ライン上のブールUsersController.php上のメンバ関数の成功へコール()56

私は、コントローラクラスに見れば、それは

のように見えますが
public function add() 
{ 
    $user = $this->Users->newEntity(); 
    if ($this->request->is('post')) { 
     $user = $this->Users->patchEntity($user, $this->request->data); 

     if ($this->Users->save($user)) { 
      $this->Flash->success(__('The user has been saved.')); 

      return $this->redirect(['action' => 'index']); 
     } else { 
      $this->Flash->error(__('The user could not be saved. Please, try again.')); 
     } 
    } 
    $this->set(compact('user')); 
    $this->set('_serialize', ['user']); 
} 

56行目は$ this-> Flash-> success(__( 'ユーザーは保存されました。'))です。コードがエラーを返すと、最も重要な、私はこの問題を解決することができるか、ですなぜ

ユーザーは、挿入、更新または私に不可解さは何(要求されたアクションに応じて)データベース

から削除されてはいるのですか?

ありがとうございます。

+0

'SRC /テンプレート/エレメント/フラッシュ/をチェックし'と 'success.ctp' –

+0

はい、ありますという名前のファイルがありますかどうかを確認してください、それが含まれています? を

+0

そこからPHPコードを削除し、HTMLコードのみを保存してください。それは正常に動作するはずです。 –

答えて

6

Flashコンポーネントが親クラスAppControllerに読み込まれていないようです。そのため、私の場合はUsersControllerでは、手動でAppControllerまたはカスタムコントローラクラスに追加する必要があります。

親クラスに追加したい場合は、AppControllerファイルを開き、クラスの横に次のPHPコードスニッパを追加します。

public function initialize() 
{ 
    $this->loadComponent('Flash'); 
} 

はIncaseのあなたは、あなたのカスタムクラス内で次のコードsnipperを追加するだけで、あなたのカスタムクラスでFlashコンポーネントをロードします。

public function initialize() 
{ 
    parent::initialize(); 
    $this->loadComponent('Flash'); 
} 

これにより、Flashコンポーネントが利用可能になり、最初の投稿に記載されているようにエラーが削除されます。

関連する問題