2016-07-22 3 views
0

ich einen Präfix Admin hinzugefügt und geändert, um die Steuerung von Userscontroller zu LoginController jetzt der localhost: 8765/admin funktioniert gut, aber localhost: 8765/admin/login/check_login SBUT, wenn ich meine Form eintragen geben sie mir einen Fehler Fehler: Die angeforderte Adresse '/ admin/login/Check-login' wurde nicht auf diesem Server gefunden wo check_login ist mein auth AktionNicht in der Lage Admin Präfix anmelden Verwenden und Ändern der Controller-Namen in cakephp3

Router

Router::prefix('admin', function ($routes) { 
$routes->connect('/', ['controller' => 'Login', 'action' => 'display','login']); 
}); 

App Controller

public function initialize() { 
    $this->loadComponent('Flash'); 
    $this->loadComponent('Auth', [ 
     'authenticate' => [ 
      'Form' => [ 
       'fields' => [ 
        'username' => 'username', 
        'password' => 'password' 
       ] 
      ] 
     ], 
     'loginAction' => [ 
      'controller' => 'Login', 
      'action' => 'check_login', 
      'prefix' => 'admin' 
     ], 
    ]); 

    // Allow the display action so our pages controller 
    // continues to work. 
    $this->Auth->allow(['display']); 

prüfen Anmeldung Aktion

public function check_login() { 
    if ($this->request->is('post')) { 
     $admin = $this->Auth->identify(); 
     if ($admin) { 
      $this->Auth->setUser($admin); 
      $result['status'] = 'success'; 
      echo json_encode($result); 
     } 
     $result['status'] = 'failure'; 
     $result['message'] = 'Your username or password is incorrect'; 
     echo json_encode($result); 
     die; 
    } 
} 

Vielen Dank im Voraus

+0

Ist die benutzerdefinierte Portnummer in der URL enthalten, wenn Sie die Fehlermeldung erhalten? –

+0

Ja, jetzt funktioniert es aber jetzt, Login-Aktion, wenn $ this-> Auth-> identify() gelesen wird gibt es einen internen Serverfehler –

+0

Ich habe die Aktion check_login geändert, um sich anzumelden –

Antwort

1

Warum sind du komplizierst? Der einfachste Weg:

  1. Erstellen Sie Admin Ordner in Ihrem Controller App-Ordner.
  2. Inside - Erstellen Sie UsersController.php und Login-Methode. Alle Funktionen innerhalb des Ordners Admin werden nur mit dem Präfix Admin in URL verwendet.

Next - Sie können die URL/admin/login zu Ihrem Login() Aktion von Benutzern Controller folgenden Routenkarte:

Router::prefix('admin', function ($routes) { 
    // Because you are in the admin scope, 
    // you do not need to include the /admin prefix 
    // or the admin route element. 
    $routes->connect('/login', ['controller' => 'Users', 'action' => 'login']); 
}); 

Dies ist der einfachste Weg.

Verwandte Themen