0

我尝试从 tt_content 获取一些数据进行测试,例如此处的“选择单行”示例(https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Database/BasicCrud/Index.html#select-a-单行):

在 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);

}

列表.html:

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

我使用 ->execute() 时的调试输出是:

Extbase Variable Dump

TRUE

我使用 ->fetch() 时的调试输出是:

Extbase Variable Dump

FALSE
4

2 回答 2

0

我看到了您的尝试,但您是否尝试过:

->execute()->fetch()

? 这应该够了吧。

于 2017-08-23T17:33:02.567 回答
0

所以有效的是例如这个

$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);
}
于 2017-08-24T14:38:56.060 回答