CakePHP 2.0 AuthComponent verwendet den eigenen Spaltennamen

  • wie kann ich Folgendes verwenden? Ich habe Spalten in meiner Tabelle. wf_users: wf_username, wf_password jetzt in meiner Form möchte ich nicht, dass jemand meine Tabellenstruktur sieht, daher verwende ich in meinem Formular.

    $this->Form->input("username")­;
    und nicht der
    e>
    Mein Post sieht so aus

    User=>array( 'username', 'password' );

    jetzt brauche ich sie, um in meine benannte Spalte zu wechseln, oder Sie wollen den Trick machen, um sich im erlaubten Bereich anzumelden, weil es versucht, mit einer falschen Spalte abzurufen (mit h "username" nicht mit h "wf_usernam").

    Mein AppController:

    class AppController extends Controller { public $viewClass = 'Theme'; public $theme; public $components = array( 'Auth'=> array( 'loginRedirect'=>array('controller'=>'users', 'action'=>'dashboard'), 'logoutRedirect'=>array('controller'=>'users', 'action'=>'dashboard'), 'authError'=>'yout can´t access the page!', 'authorise'=>array('Controller'), #'authenticate' => array( # 'Form' => array( # 'fields' => array( # 'wf_auth_user_username' => 'username', # 'wf_auth_user_password' => 'password' # ) # ) #) ), 'Session' ); //Before mainlayout public function beforeFilter() { parent::beforeFilter(); $this->theme = 'SM'; $this->Auth->fields = array('username'=>'wf_auth_user_username','password'=>'wf_auth_user_password'); //Configure AuthComponent $this->Auth->allow('*'); //Logged in user $this->set('isauth', 'loggedout'); //$this->userpanelAuth()); } public function isAuthorized($user) { return true; } protected function userpanelAuth() { if($this->isAuthorized()) { return 'loggedin'; }else{ return 'loggedout'; } } }

    Und dies ist mein Formular:

    <div id="display-panel"> <? echo $this->Session->flash(); echo $this->Form->create('User', array('action' => 'login')); echo $this->Form->input( 'username', array('label'=>false, 'div'=>false,'placeholder'=>'Benutzername','')); echo $this->Form->input( 'password', array('label'=>false, 'div'=>false,'placeholder'=>'Passwort')); echo $this->Form->end(array('label'=>'login','div'=>false)); ?> </div>
    25 August 2012
    tereškoArkiliknam
3 answers
  • Mit der Auth-Komponente können Sie beim Einrichten der Konfiguration verschiedene Felder angeben. In diesem Fall verwenden Sie den Authentifizierungs-Handler Form, der eine Taste fields hat.

     <?php
    // Pass settings in $components array
    public $components = array(
        'Auth'=> array(
            'authenticate' => array(
                'Form' => array(
                    'fields' => array('username' => 'email')
                )
            )
        )
    );
     

    Über die 2.0 Authentifizierung docs .

    22 November 2011
    brism
  • Wenn Sie alle Auth-Einstellungen festlegen (normalerweise in einem beforeFilter-Rückruf), setzen Sie einfach die Eigenschaft fields

     $this->Auth->fields = array('username' => 'wf_username', 'password' => 'wf_password');
     
    22 November 2011
    Stoosh
  • Sie müssen diese Spaltennamen wf_ nicht verwenden. Halten Sie sich an die Konvention und verschwenden Sie keine Zeit.

    04 November 2014
    trafalgar