php - 获取数据库表 typo3 4.6.1 页面上的所有记录

标签 php typo3

我需要一个页面的所有记录,但我需要它适用于用户当前所在的特定语言和工作区。

在传统的 typo3 中,我使用了类似的东西:

        $query = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
            '*',         // SELECT ...
            'tx_faqs_domain_model_faqsections',     // FROM ...
            'pid=' . (int) $pid . ' and deleted=0 and hidden=0 and sys_language_uid=' . $lang . ' AND t3ver_wsid = ' . (int) $workspace,    // WHERE...
            '',            // GROUP BY...
            'sorting',    // ORDER BY...
            ''            // LIMIT ...
        ); 
    foreach ($query as $key => $value) {
        $data[$key] = utf8_encode($value); 
    }            

但是,以下不适用于工作区,并且似乎不适合新的 flow3 框架。

我看了一下:

    $query = $this->createQuery();
    return $query->execute();

在我的 Tx_Faqs_Domain_Repository_FaqSectionsRepository 类中,但这返回一个空数组。

从数据库表中获取特定页面、特定工作区中特定语言的所有记录的示例将是完美的。

最佳答案

向您的存储库添加一个方法来为您进行过滤:

public function findAllFromPage(){
    $query = $this->createQuery();
    $query->getQuerySettings()->setRespectStoragePage(FALSE);

    $pid = intval($GLOBALS['TSFE']->id);
    $query->matching($query->equals('pid',$pid ));
    return $query->execute();
}

重要的一点是,您将 respectStoragePage 设置为 false,否则它只是在您配置的存储 pid 中查找条目(这也是为什么像 findByPid($ GLOBALS['TSFE']->id);,无论如何在存储库类中可用,将不起作用)

关于php - 获取数据库表 typo3 4.6.1 页面上的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9668959/

相关文章:

php - 如果使用 dd 方法,Laravel 5.4 session 不会被设置

php - FFMPEG 或 ImageMagick 用于图像转换和调整大小(速度/内存使用)?

html - 完全控制 TYPO3 的 HTML 输出

javascript - TYPO3 8.7.x/Typoscript : Extension ajax call, 从插入到特定页面的插件获取设置

Typo3最佳实践——通用变量

google-analytics - 如何使用 Google Analytics 查找每秒向服务器发出的并发请求?

php - array_search() 找不到第 0 个元素

javascript - 解析图表 js laravel Blade 中的数组

TYPO3(流体): Generate FAL-SVG-Image as inline code

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源