Как получить скрытую запись в интерфейсе? Хотите получить скрытую запись, а затем скрыть ее на 0.EXTBASE: Как получить скрытую запись
ответ
Дело в том, чтобы отключить свойство 'respectEnableFields' в 'querySettings'. Вы можете сделать это в вашем хранилище, как это:
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();
}
}
Вы можете сделать эти настройки для метода опалить в вашем Repository:
<?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();
}
}
Или для всего Repository. Это включает в себя методы, которые вы унаследовали от 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);
}
}
Вы можете использовать initializeObject Метод Repository, поэтому мы не должны писать querySettings для каждого метода в 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);
}
}
'$ querySettings-> getQuerySettings() -> setIgnoreEnableFields (true)' не работает, просто используйте '$ querySettings-> setIgnoreEnableFields (true)' – andreas
В TYPO3 версии 6.0 .0 и выше, теперь это 'setIgnoreEnableFields (TRUE)'. 'setRespectEnableFields' устарел и удален из TYPO3 6.2.0. –
"устарел и удален из TYPO3 6.2.0" - больше информации об этом? Как получить скрытые/удаленные StorageObjects сейчас? – j4k3