2016-04-16 19 views
1

Ich habe ein einfaches Crud-System mit ZF2 und Oracle.Orakel Uppcase Spalte Zend Framework 2 Authentifizierung

Aber Oracle hat ein Problem mit Spaltennamen: Sie kamen immer in Großbuchstaben.

Ich war Manager in der Lage diesen Code in Einheiten hinzugefügt:

public function exchangeArray(array $data) 
    { 
    $dataInner = array(); 
    foreach ($data as $key => $value) { 
     $dataInner[strtolower($key)] = $value; 
    } 
    ... 

So weit, so gut! Alles System läuft perfekt.

Aber Problem ist jetzt Login.

Nach einer gültigen Anmeldung ich Benutzer aus der Datenbank abrufen

public function authenticate(){ 
$zendDb = $this->sm->get('\Zend\Db\Adapter\Adapter'); 

$adapter = new DbTable($zendDb); 

$adapter->setIdentityColumn('identity') 
    ->setTableName('user') 
    ->setCredentialColumn('credencial') 
    ->setIdentity($this->identity) 
    ->setCredential($this->credential); 

$authentication = new AuthenticationService(); 
$authentication->setAdapter($adapter); 
$result = $authentication->authenticate(); 

if ($result->isValid()) { 
    $usuario = $authentication->getAdapter()->getResultRowObject(null, "CREDENCIAL"); 
    /* 
    $usuario == object(stdClass)#285 (3) { 
     ["ID"]=> string(1) "1" 
     ["IDENTITY"]=> string(5) "bruno" 
     ["CREDENTIAL"]=> string(5) "admin" 
     } 
    */ 
    $authentication->getStorage()->write($usuario); 
    return true; 
} else { 
    $this->messages = $result->getMessages(); 
    return false; 
} 

} 

Controller:

$authentication = new AuthenticationService(); 
$this->layout()->setVariable('user', $authentication->getIdentity()); 
return array('user'=>$authentication->getIdentity()); 

Ansicht

echo $this->user->IDENTITY; 

Was kann ich tun

zu verwenden
echo $this->user->identity; 

statt

echo $this->user->IDENTITY; 
+0

, wie Sie Daten von Oracle erhalten, den Code schreiben, wenn Sie helfen wollen ... –

+0

die Informationen stammen von hier '$ authentication-> getAdapter() -> getResultRowObject (null," credencial ");' aber wenn Sie vollständige Methode sehen möchten, habe ich ein Update –

Antwort

0

try Verwendung Großbuchstaben Name des Feldes

... 
$adapter 
    ->setTableName('user') 
    ->setIdentityColumn('IDENTITY') 
    ->setCredentialColumn('CREDENCIAL') 
...