2017-08-15 7 views
1

Momentan habe ich eine funktionierende Login-Prozedur. Meine Benutzer gehen zu einer bestimmten Anmeldung Ansicht, geben ihren Benutzernamen und ihr Passwort ein, greifen zu und werden auf ein bestimmtes Dashboard umgeleitet.Wie melde ich mich mit einem Element in CakePHP an?

In meinen Benutzer-Controller:

public function login() { 

    if ($this->request->is('post')) { 
     if ($this->Auth->login()) { 
      return $this->redirect(); 
     } 
     $this->Session->setFlash('Incorrect user or password.'); 
    } 
} 

Die Login-Ansicht:

<h1>Access with your username:</h1> 
<?php 
    echo $this->Form->create('User', array('action' => 'login')); 
     echo $this->Form->input('username', array('label' => 'User:')); 
     echo $this->Form->input('password', array('label' => 'Password:')); 
    echo $this->Form->end('Login'); 
?> 

Die Frage kam, als ich gebeten wurde, einige Login-Felder direkt in meinem Hauptmenü hinzuzufügen. Also habe ich versucht, sie als Element in meinem Header hinzuzufügen. Es hat nicht funktioniert.

Das Element, das ich in meinem Header hinzugefügt bin:

<div> 
    <?php 
     echo $this->Form->create('user', array('action' => 'login')); 
     echo $this->Form->input('username', array('placeholder' => 'User', 'label' => false)); 
     echo $this->Form->input('password', array('placeholder' => 'Password', 'label' => false)); 
     echo $this->Form->submit('Ingresar', array('div' => true)); 
     echo $this->Form->end(); 
    ?> 
</div> 

ich geben Sie Benutzername und Passwort ein und klicken Sie auf "Login" klicken. Es wirft mir den "Falscher Benutzer oder das falsche Passwort". Fehlermeldung und leitet mich zu der Ansicht für die Login Aktion (ohne Anmeldung im Benutzer).

Dort kann man sich ohne weitere Probleme erfolgreich anmelden, aber es ging darum, die benötigten Klicks für die Aktion um 1 zu reduzieren.

Was fehlt mir? Was sollte ich ändern/hinzufügen/verschieben?

Antwort

0

In Ihrem zweiten HTML-Formular, das Modell User nicht eingegeben, wie es

Änderung

echo $this->Form->create('user', array('action' => 'login')); 

Um

echo $this->Form->create('User', array('action' => 'login')); 

Hinweis U aus dem Modellnamen u geändert werden soll, die

+0

Um den Fehler zu erklären, sind Sie ge tting: Wenn Sie das Formular absenden (das zweite), erwartet die 'AuthComponent' ein Array als' array ('Benutzer' => array ('Benutzername' => '***', 'Passwort' => '* **))) aber in Ihrem Fall erhält die 'AuthComponent' ein Array mit einer anderen Struktur' array ('user' => array ('Benutzername' => '***', 'Passwort' => '** *))) –

+0

Das war es. So offensichtlich im Nachhinein. Vielen Dank! –

Verwandte Themen