Подробное руководство FLOW3: не удается сохранить блог в базе данных

Я делаю подробное руководство по FLOW3: Часть 3: Контроллер

Мой блог должен быть создан и сохранен в базе данных, но это не так. Конфигурация базы данных правильная (FLOW3 создал таблицы, и доктрина успешно мигрирует/обновляется), код выглядит правильно (скопировано из репозитория FLOW3 definitve guide GIT).

У кого-нибудь есть похожая проблема?

Вот мой indexAction от SetupController, который должен создать блог в базе данных:

   /**
     * Sets up a fresh blog and creates a sample post.
     *
     * @return void
     */
    public function indexAction() {
        $this->blogRepository->removeAll();
        $this->postRepository->removeAll();

        $blog = new \TYPO3\Blog\Domain\Model\Blog();
        $blog->setTitle('My Blog');
        $blog->setDescription('A blog about Foo, Bar and Baz.');
        $this->blogRepository->add($blog);

        $post = new \TYPO3\Blog\Domain\Model\Post();
        $post->setAuthor('John Doe');
        $post->setTitle('Example Post');
        $post->setContent('Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.');
        $this->postRepository->add($post);

        return $blog->addPost($post) == true ? 'success' : 'error';
    }

Я буду признателен за любую помощь и предоставлю дополнительную информацию, если я недостаточно ясен.

Спасибо заранее


person greg    schedule 21.08.2013    source источник


Ответы (1)


TYPO3 FLOW не сохраняет изменения для Безопасные запросы (например, HTTP GET) больше, чем в версии 2.0.

Это означает, что если вы хотите сохранить изменения в GET-запросе, вы должны сами вызвать persistenceManager->persistAll().

class SetupController extends \TYPO3\Flow\Mvc\Controller\ActionController {


        /**
         * @Flow\Inject
         * @var \TYPO3\Flow\Persistence\PersistenceManagerInterface
         */
        protected $persistenceManager;

        //.... 

        public function indexAction() {
               //.... your code
               $this->persistenceManager->persistAll();
        }
}
person hnesk    schedule 22.08.2013