Zum Inhalt springen

Datensatz in ein Array laden

Erstellt am 6. Januar 2018 · 1 Antwort · letzte Antwort am 7. Januar 2018

Tags: Extbase, TYPO3 7, Frage

hiety ·

Hallo zusammen,

hab mal wieder ein Brett vor dem Kopf und freue mich über Hilfe.

Ich rufe mit

https://domain.de/extension/?tx_extension_extension[action]=verify&tx_extension_extension[controller]=Extension&tx_extension_extension[authCode]=Authentisierungscode&tx_extension_extension[authMail]=name@domain.tld

meine Extension auf. Also Aufruf von extern ohne Kontext in der Extension. Per Datenbankabfrage im Controller

$result = $this->extensionRepository->findMyUid($this->request->getArgument('authCode'),$this->request->getArgument('authMail'));

bzw Repository

/**
*
* @param string $authCode
* @param string $authMail
*/
public function findMyUid($authCode, $authMail)
{
// Query aufbauen
$query = $this->createQuery();
$query->getQuerySettings()->setIgnoreEnableFields(true)->setIncludeDeleted(true);
$query->matching(
$query->logicalAnd(
$query->like('verificationcode',$authCode),
$query->like('email',$authMail),
$query->like('deleted','0')
)
);
$result = $query->execute();
return $result;
}

bekomme ich auch einen String mit der gewünschten UID (hier z.B. 38) zurück im Format

Vendor\Extension\Domain\Model\Name:38

Nur schaffe ich es nicht, mit dieser Info aus der Datenbank heraus ein Array zu laden, damit ich es
a) im Fluid/Extbase weiter verwenden kann (z.B. im Template als {variablenname.username}, oder im Controller/Repository)

b) mit z.B. $variablenname->setHidden('0');
$this->extensionRepository->update($variablenname);
den Datenbankeintrag verändern kann.

Was muss ich dazu noch tun? Ist bestimmt mal wieder eine Kleinigkeit...

Danke für Eure Hilfe
hiety

hiety · · Beste Antwort

Hat sich erledigt. Ich hatte angenommen, dass das Array als return mit allen Inhalten zurückkommt, wenn sich genau ein Datensatz findet, und nicht nur die UID.

Mit

$uid = explode(':',$result[0]);
$variablenname = $this->extensionRepository->findByUid($uid[1]);

konnte ich dann die eigentlichen Inhalte nachladen und wie gewünscht verarbeiten. Geht bestimmt auch eleganter, tut aber erst mal was es soll.