1

我正在做 FLOW3 权威指南:第 3 部分:控制器

我的博客应该被创建并保存在数据库中,但事实并非如此。数据库的配置是正确的(FLOW3 已成功创建表和学说迁移/更新),代码看起来正确(从 FLOW3 定义指南 GIT 存储库复制)。

有没有人有类似的问题?

这是我的来自 SetupController 的 indexAction,它应该在数据库中创建博客:

   /**
     * 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';
    }

如果我不够清楚,我将不胜感激并提供更多信息。

提前谢谢

4

1 回答 1

3

自 2.0 以来,TYPO3 FLOW 不再保留安全请求(如 HTTP GET)的更改。

这意味着如果您想在 GET-Request 中保留更改,您必须调用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();
        }
}
于 2013-08-22T09:25:15.070 回答