вот проблема, с которой я столкнулся при разработке расширений TYPO3.
Я написал расширение TYPO3.В браузере будут отображаться новости в БД.Но я хотел бы настроить задачу планировщика для периодического обновления новостей в БД, которые будут отображаться.
При написании этой задачи планировщика я использовал командный контроллер.
namespace Vendor\Extension\Command;
class CheckNewsCommandController extends \TYPO3\CMS\Extbase\Mvc\Controller\CommandController
{
public function simpleCommand()
{
$newsRepository = $this->objectManager->get( \Vendor\Extension\Domain\Repository\NewsRepository::class );
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($newsRepository);
$all_news = $newsRepository->findAll();
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($all_news);
}
}
Но переменная $ all_news ничего не содержит, она равна NULL !!!Это означает, что findAll () Функция NewsRepository НЕ работает вообще !!!
Для сравнения, я также использовал этот NewsRepository в обычном классе контроллеров: Vendor \ Extension \ Controller \ NewsController
namespace Vendor\Extension\Controller;
class NewsController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
public function listAction()
{
$newsRepository = $this->objectManager->get( \Etagen\EtSocNewsSt\Domain\Repository\NewsRepository::class );
$all_news = $newsRepository->findAll();
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($all_news);
}
И, в NewsController , функция NewsRepository:: findAll () DID действительно работает и возвращает все записи в БД.
Итак, кто может сказать мне, почему функция репозитория будет ONLY работать в классе Vendor \ Extension \ Controller \ NewsController , но NOT работают в классе Vendor \ Extension \ Command \ CheckNewsCommandController ?