2016-06-30 18 views
1

私はCakePHP 3.2で作業しており、管理者のみがログインできる管理パネルを作成しています。CakePHPエラー:クラスApp Controller AuthComponentが見つかりません

管理者の資格情報を格納する別のテーブルadminsがあります。ユーザがメインアプリケーションから登録/ログインするために使用されるusersテーブルもあります。

私はadminsテーブルを使用して管理パネルにログインする必要があります。

私がしたことはです。

AdminsController.php

<?php 
namespace App\Controller; 

use App\Controller\AppController; 
use Cake\Event\Event; 
use App\Controller\AuthComponent; 

/** 
* Admins Controller 
* 
* @property \App\Model\Table\AdminsTable $Admins 
*/ 
class AdminsController extends AppController 
{ 
     public function beforeFilter(Event $event) 
     { 
      parent::beforeFilter($event); 
      $this->Auth->allow('add'); 
      // Pass settings in using 'all' 
      $this->Auth->config('authenticate', [ 
      AuthComponent::ALL => ['userModel' => 'Members'], 
       'Basic', 
       'Form' 
      ]); 
     } 

    public function login() 
    { 
     if ($this->request->is('post')) { 
      $user = $this->Auth->identify(); 
      if ($user) { 
       $this->Auth->setUser($user); 
       return $this->redirect($this->Auth->redirectUrl()); 
      } 
      $this->Flash->error(__('Invalid username or password, try again')); 
     } 
    } 

    public function logout() 
    { 
     return $this->redirect($this->Auth->logout()); 
    } 
} 

<?php 
namespace App\Controller; 

use Cake\Controller\Controller; 
use Cake\Event\Event; 


class AppController extends Controller 
{ 

    public function initialize() 
    { 
     parent::initialize(); 

     $this->loadComponent('RequestHandler'); 
     $this->loadComponent('Flash'); 
     $this->loadComponent('Auth', [ 
      'loginAction' => [ 
      'controller' => 'Admins', 
      'action' => 'login', 
      'plugin' => 'Admins' 
      ], 
      'loginRedirect' => [ 
      'controller' => 'ServiceRequests', 
      'action' => 'index' 
      ], 
      'logoutRedirect' => [ 
      'controller' => 'Admins', 
      'action' => 'login' 
      ], 
      'authenticate' => [ 
      'Form' => [ 
       'userModel' => 'Admin', 
       'fields' => [ 
       'username' => 'email', 
       'password' => 'password' 
       ] 
      ] 
      ] 
     ]); 
    } 

    public function beforeRender(Event $event) 
    { 
     if (!array_key_exists('_serialize', $this->viewVars) && 
      in_array($this->response->type(), ['application/json', 'application/xml']) 
     ) { 
      $this->set('_serialize', true); 
     } 
    } 
} 

しかし、これは動作しません。と与えます Error: Class App\Controller\AuthComponent' not found

また、私はログインせずにすべてのコントローラとアクションへのアクセスを制限したいと思います。ザッツなぜそこには$this->Auth->allow()

AppsController.php

答えて

2

use Cake\Controller\Component\AuthComponent;

+1

はありません...と 'コントローラー\ Component' :) – ndm

+0

MEH ... :)おかげで – burzum

関連する問題