Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 类型3 extbase-双向关系_Typo3_Extbase - Fatal编程技术网

Typo3 类型3 extbase-双向关系

Typo3 类型3 extbase-双向关系,typo3,extbase,Typo3,Extbase,我有两个表格:fe_用户(针对我的前端用户)和tx_somethingarticles_domain_model_article。用户应该能够“喜欢”一篇文章,因此对于每个用户,我需要信息,如果他已经喜欢一篇文章或不喜欢,但我也需要信息,有多少喜欢一篇文章已经有。所以我相信我需要的是一个双向的mm关系,但我似乎无法让它工作。我有我的用户实体,如下所示: /** * articleLike * * @var \TYPO3\CMS\Extbase\Persistence\ObjectStora

我有两个表格:fe_用户(针对我的前端用户)和tx_somethingarticles_domain_model_article。用户应该能够“喜欢”一篇文章,因此对于每个用户,我需要信息,如果他已经喜欢一篇文章或不喜欢,但我也需要信息,有多少喜欢一篇文章已经有。所以我相信我需要的是一个双向的mm关系,但我似乎无法让它工作。我有我的用户实体,如下所示:

/**
 * articleLike
 *
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Package\SomethingArticles\Domain\Model\Article>
 */
protected $articleLike = NULL;

public function addArticlesLike(\Package\SomethingArticles\Domain\Model\Article $articlesLike) {
    $this->articlesLike->attach($articlesLike);
}

public function removeArticlesLike(\Package\SomethingArticles\Domain\Model\Article $remove) {
    $this->articlesLike->detach($remove);
}

public function getArticlesLike() {
    return $this->articlesLike;
}

public function setArticlesLike(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $articlesLike) {
    $this->articlesLike = $articlesLike;
}
'articles_like' => array(
        'exclude' => 1,
        'label' => 'LLL:EXT:something_articles/Resources/Private/Language/locallang_db.xlf:tx_somethingarticles_domain_model_user.articles_like',
        'config' => array(
            'type' => 'group',
            'internal_type' => 'db',
            'foreign_table' => 'tx_somethingarticles_domain_model_article',
            'allowed' => '*',
            'MM' => 'tx_somethingarticles_user_articleslike_article_mm',
            'MM_opposite_field' => 'articles_like',
            'size' => 10,
            'autoSizeMax' => 30,
            'maxitems' => 9999,
            'multiple' => 0,
        ),
    ),
有了getArticlesLike,我想得到所有喜欢的文章。My tca.php for User的列articles_类似,如下所示:

/**
 * articleLike
 *
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Package\SomethingArticles\Domain\Model\Article>
 */
protected $articleLike = NULL;

public function addArticlesLike(\Package\SomethingArticles\Domain\Model\Article $articlesLike) {
    $this->articlesLike->attach($articlesLike);
}

public function removeArticlesLike(\Package\SomethingArticles\Domain\Model\Article $remove) {
    $this->articlesLike->detach($remove);
}

public function getArticlesLike() {
    return $this->articlesLike;
}

public function setArticlesLike(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $articlesLike) {
    $this->articlesLike = $articlesLike;
}
'articles_like' => array(
        'exclude' => 1,
        'label' => 'LLL:EXT:something_articles/Resources/Private/Language/locallang_db.xlf:tx_somethingarticles_domain_model_user.articles_like',
        'config' => array(
            'type' => 'group',
            'internal_type' => 'db',
            'foreign_table' => 'tx_somethingarticles_domain_model_article',
            'allowed' => '*',
            'MM' => 'tx_somethingarticles_user_articleslike_article_mm',
            'MM_opposite_field' => 'articles_like',
            'size' => 10,
            'autoSizeMax' => 30,
            'maxitems' => 9999,
            'multiple' => 0,
        ),
    ),
以及我的文章的tca.php:

        'articles_like' => array(
            'exclude' => 1,
            'label' => 'LLL:EXT:something_articles/Resources/Private/Language/locallang_db.xlf:tx_somethingarticles_domain_model_article.articles_like',
            'config' => array(
                'type' => 'group',
                'internal_type' => 'db',
                'allowed' => '*',
                'foreign_table' => 'fe_users',
                'MM' => 'tx_somethingarticles_user_articleslike_article_mm',
                'maxitems'   => 9999,
            ),
        ),
当我获取一个用户并尝试$user->getArticlesLike()之类的东西时,它工作得非常完美,我还可以附加新的喜欢,就像一个符咒。但是当我尝试$article->getArticlesLike()时。。。它总是空的。我错过了什么


我真的很绝望,在过去的10个小时里我一直在努力解决这个问题,我似乎找不到解决办法。非常感谢您的帮助

对文章TCA使用以下列配置:

'foreign_table' => 'tx_somethingarticles_user_articleslike_article_mm'

然后删除MM:)

我们遇到了相同的问题,正如文件所述,有两件事是必不可少的

  • 确保在TCA中为您设置的两个相关表格:

    'multiple' => 1
    
  • MM表应该有一个字段“sorting_foreign”,因此ext_tables.sql应该有如下定义:

    sorting_foreign int(11) DEFAULT '0' NOT NULL
    

  • 物品与同类物品之间的关系为1:n。因此,我想模型文章中类似的专栏文章不应该有MM定义。尝试将foreign_table设置为tx_something articles_user_articles类似于_article_mm但我想做的是创建一个类似于文章和用户之间m:n关系的表-我如何实现这一点?在本教程中,您的文章是一家公司,您喜欢的是员工。类似项存储在mm关系表中。因此,尝试将mm表作为外来表添加到文章:)这不是我在tca.php中所做的吗<代码>'foreign_table'=>'fe_users''foreign_table'=>'tx_somethingarticles\u users\u Articles类似于\u article\u mm'