2017-01-19 10 views
0

Я использую расширение новостей для управления новостным сообщением для своего сайта. Некоторые из новостей отключены в бэкэнд. Пользователь имеет URL с идентификатором объекта новостей, и это вызовет действие в моем контроллереИзвлечение объекта в контроллере при установке скрытого в backend TYPO3

Я пытаюсь получить мои новости объект как этого

$news = $this->newsRepository->findByUid($id); 

Это вернет NULL потому, что он выключен/скрытый в бэкэнде. Когда я верну его, чтобы включить. Он вернет мне объект.

Я попытался с помощью следующей функции в моей newsRepository

public function findHiddenByUid($uid) { 

      $query = $this->createQuery(); 
      $query->getQuerySettings()->setRespectSysLanguage(FALSE); 
      $query->getQuerySettings()->setRespectStoragePage(FALSE); 
      $query->getQuerySettings()->setEnableFieldsToBeIgnored(array('disable')); 
      return $query 
      ->matching(
      $query->equals('uid', $uid) 
      ) 
       ->execute() 
       ->getFirst(); 

} 

Но это также будет возвращать NULL.

Является ли функция неправильной, не хватает ли некоторых настроек? Я использую TYPO3 7.6

ответ

1

Отъезд findByUid я использую в расширении новостей:

public function findByUid($uid, $respectEnableFields = true) 
{ 
    $query = $this->createQuery(); 
    $query->getQuerySettings()->setRespectStoragePage(false); 
    $query->getQuerySettings()->setRespectSysLanguage(false); 
    $query->getQuerySettings()->setIgnoreEnableFields(!$respectEnableFields); 

    return $query->matching(
     $query->logicalAnd(
      $query->equals('uid', $uid), 
      $query->equals('deleted', 0) 
     ))->execute()->getFirst(); 
} 

Позвонив ->findByUid(123,false) также будет возвращать скрытые объекты.

+0

Спасибо. Кажется, это работает, но он возвращает мне queryresult. Поэтому, когда я пытаюсь использовать setHidden (0), он не работает (неопределенный метод), потому что теперь это не новостная модель. Какие-либо предложения? –

+1

Извините, что я виноват. Я использовал findById вместо findByUid. Оно работает! благодаря! –