2017-08-23 1 views
0

ich einige Daten zum Testen von tt_content zu holen versucht, wie hier im Beispiel ‚eine einzelne Zeile SELECT‘ (https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Database/BasicCrud/Index.html#select-a-single-row):TYPO3 Extbase - Grund CRUD/Werte aus der Datenbank auswählen und machen in v8

In Controller.php :

... 

use TYPO3\CMS\Core\Database\ConnectionPool; 
use TYPO3\CMS\Core\Utility\GeneralUtility; 

... 

public function listAction() { 

    $uid = 4; 
    $tester = GeneralUtility::makeInstance(ConnectionPool::class) 
     ->getConnectionForTable('tt_content') 
     ->select(
      ['uid', 'pid', 'bodytext'], 
      'tt_content', 
      [ 'uid' => (int)$uid ] 
     ) 
    ->fetch() // 1. attempt  
    ->execute(); // 2. attempt 
    $this->view->assign('inet', $tester); 

} 

list.html:

<f:debug>{inet}</f:debug> 

Debug-Ausgabe, wenn ich -> execute() ist:

Extbase Variable Dump 

TRUE 

Debug-Ausgabe, wenn ich -> fetch() ist:

Extbase Variable Dump 

FALSE 

Antwort

0

Also was funktioniert, ist z.B. dies

$uid = 10; 
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content'); 
$queryBuilder->getRestrictions()->removeAll(); 
$statement = $queryBuilder 
    ->select('uid', 'pid', 'header')    
    ->from('tt_content') 
    ->where(
     $queryBuilder->expr()->eq('uid', $uid) 
    )   
    ->execute();  
while ($row = $statement->fetchAll()) { 
    $this->view->assign('inet', $row); 
} 
0

ich Ihre Versuche zu sehen, aber haben Sie versucht:

->execute()->fetch() 

? Das sollte den Trick machen.

+0

Leider hat nicht funktioniert. Dann bekomme ich Fehler: Aufruf einer Memberfunktion fetch() auf Boolean. Fehler in Datei geworfen. /is/htdocs/.../www/domain/typo3conf/ext/code/Classes/Controller/CodeController.php in Zeile 115. –

Verwandte Themen