私は多くの調査を行い、さまざまな例に従いましたが、それでも正しく実行できません。
したがって、ここに登録からのコントローラー アクションの一部があります。
if(!empty($this->request->data)){
$this->request->data['Company']['start_date']= date("Y-m-d");
unset($this->Company->User->validate['company_id']);
if($this->Company->saveAssociated($this->request->data)){
$user = $this->request->data['User'];
$data['User']['password'] = $user[0]['password'];
$data['User']['email'] = $user[0]['email'];
if($this->Auth->login($data)){
$this->redirect($this->Auth->redirect(array('controller'=>'customers', 'action'=>'index')));
}...
したがって、ユーザーが保存され、ユーザーの電子メールとパスワードの新しい配列が作成されます。次に、$this->Auth->loginに渡されます。ログインは成功したように見えますが、顧客コントローラーへのリダイレクトで次のエラーが発生します。
Notice (8): Undefined index: role [APP\Controller\CustomersController.php, line 32]
Notice (8): Undefined index: role [APP\Controller\CustomersController.php, line 36]
役割フィールドは、ユーザー作成時にマネージャーとして自動設定されますが。CustomerController は次のようになります。
パブリック関数 isAuthorized($user){
if($user['role'] == 'manager'){
return true;}
if (in_array($this->action, array('add', 'edit', 'index', 'view', 'delete', 'users'))){
if($user['role'] != 'manager'){
return false;
}}return true;}
どんな助けでも大歓迎です。