How to get hidden record in frontend? Want to get hidden record then change hidden to 0.
Asked
Active
Viewed 8,696 times
3 Answers
9
Your can make this settings for a singe method in your Repository:
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 Some
*/
public function findHiddenByUid($uid): Some
{
$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();
}
}
Or for the entire Repository. This includes the methods that you inherit from TYPO3\CMS\Extbase\Persistence\Repository
:
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(): void
{
// 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);
}
}

nito
- 1,157
- 8
- 21
4
You can use initializeObject Method of Repository so we did not have to write the querySettings for each Methods in Repository
class SomeRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
/**
* initialize querySettings
*/
public function initializeObject() {
$querySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings');
// Get Hidden and Deleted Records
$querySettings->getQuerySettings()->setIgnoreEnableFields(true);
//Disable Storage pid
$querySettings->setRespectStoragePage(FALSE);
$this->setDefaultQuerySettings($querySettings);
}
}

Vishal Tanna
- 1,165
- 2
- 12
- 36
-
`$querySettings->getQuerySettings()->setIgnoreEnableFields(true)` doesn't work, just use `$querySettings->setIgnoreEnableFields(true)` – andreas Oct 19 '16 at 17:23
3
The point is to disable the respectEnableFields
property in your querySettings
. You can do this in your repository like this:
class SomeRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
public function findHiddenByUid($uid)
{
$query = $this->createQuery();
$query->getQuerySettings()->setRespectEnableFields(false);
$query->matching($query->equals('uid', $uid));
return $query->execute()->getFirst();
}
}
-
5In TYPO3 version 6.0.0 and above, this is now `setIgnoreEnableFields(TRUE)`. `setRespectEnableFields` is deprecated and removed from TYPO3 6.2.0. – Charles Brunet Sep 30 '14 at 13:57
-
1"is deprecated and removed from TYPO3 6.2.0" - any more info on this? How do i retrieve hidden/deleted StorageObjects now? – j4k3 May 05 '15 at 13:28