EXTBASE:如何获取隐藏记录

gSo*_*rry 3 typo3 repository hidden-field extbase

如何在前端获取隐藏记录?想要隐藏记录然后将隐藏更改为0.

nit*_*ito 8

您可以在存储库中为单个方法进行此设置:

<?php
namespace Vendor\ExtensionName\Domain\Repository;

use TYPO3\CMS\Extbase\Persistence\Repository;

/**
 * Some Repository
 */
class SomeRepository extends Repository
{    
    /**
     * Find a record by uid even if it is hidden or deleted
     *
     * @param  int $uid
     * @return object
     */
    public function findHiddenByUid($uid) {
        $query = $this->createQuery();

        // Here you enable the hidden and deleted Records
        $query->getQuerySettings()
            ->setIgnoreEnableFields(true)
            ->setIncludeDeleted(true);

        // Your query
        $query->matching($query->equals('uid', $uid));
        return $query->execute()->getFirst();
    }
}
Run Code Online (Sandbox Code Playgroud)

或者整个存储库.这包括您继承的方法TYPO3\CMS\Extbase\Persistence\Repository:

<?php
namespace Vendor\ExtensionName\Domain\Repository;

use TYPO3\CMS\Extbase\Persistence\Repository;
use TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings;

/**
 * Some Repository
 */
class SomeRepository extends Repository
{
    /**
     * Always return hidden and deleted records from this Repository
     */
    public function initializeObject() {
        // Load the querySettings
        $querySettings = $this->objectManager->get(Typo3QuerySettings::class);

        // Ignore hidden and deleted records
        $querySettings
            ->setIgnoreEnableFields(true)
            ->setIncludeDeleted(true);

        // Set your settings as default for the entire Repository
        $this->setDefaultQuerySettings($querySettings);
    }
}
Run Code Online (Sandbox Code Playgroud)