错别字 extbase - 双向关系
typo3 extbase - bidirectional relation
我有两个表:fe_users(对于我的前端用户)和 tx_somethingarticles_domain_model_article。一个用户应该能够 "like" 一篇文章,所以对于每个用户,我需要他是否喜欢一篇文章的信息,而且我还需要文章已经有多少人喜欢的信息。所以我相信我需要的是双向 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;
}
我的文章实体有这个:
受保护的 $articlesLike = NULL;
public function getArticlesLike() {
return $this->articlesLike;
}
使用 getArticlesLike 我想获得一篇文章的所有赞。我的 tca.php 用户有 articles_like 列,看起来像这样:
'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 :)
我有两个表:fe_users(对于我的前端用户)和 tx_somethingarticles_domain_model_article。一个用户应该能够 "like" 一篇文章,所以对于每个用户,我需要他是否喜欢一篇文章的信息,而且我还需要文章已经有多少人喜欢的信息。所以我相信我需要的是双向 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;
}
我的文章实体有这个: 受保护的 $articlesLike = NULL;
public function getArticlesLike() {
return $this->articlesLike;
}
使用 getArticlesLike 我想获得一篇文章的所有赞。我的 tca.php 用户有 articles_like 列,看起来像这样:
'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 :)