当前位置: 首页 > 知识库问答 >
问题:

类型3 extbase-双向关系

萧亦
2023-03-14

我有两个表格: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;
}

My Article实体具有以下特性:protected$articlesLike=NULL;

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

有了getArticlesLike,我想得到所有喜欢的文章。我的tca。php for User的列articles_如下所示:

'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。我的文章:

        '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之类的东西时-

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

共有1个答案

拓拔弘扬
2023-03-14

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

'foreign_table' => 'tx_somethingarticles_user_articleslike_article_mm'

并删除MM:)

 类似资料:
  • 我试图在用户和地址之间建立双向关系, 用户1-------->*地址 但是 地址1-------->1个用户 我在上网时得到了这些信息 > 对于一对一双向关系,拥有方对应于包含对应外键的方 双向关系的反向侧必须通过使用OneToOne、 OneToMany或ManyToMany批注的mappedBy元素来引用其 所属侧。mappedBy元素指定作为 关系所有者的实体中的属性或字段。 但如果我按照情

  • 我已经找了一段时间了,但是找不到一个明确的答案。 很多人说使用联合来键入双关语是不明确的,也是不好的做法。这是为什么呢?我看不出它会做任何未定义的事情的任何理由,考虑到你写入原始信息的内存不会自动改变(除非它超出了堆栈的范围,但这不是一个联合问题,这将是一个糟糕的设计)。 人们引用严格的混淆现象规则,但在我看来,这就像说你做不到,因为你做不到。 此外,如果不打双关语,工会还有什么意义?我在某个地方

  • 问题内容: 假设我有两个实体: 然后,我要保留“客户”实体,然后,参照先前添加的“客户”保留“订单”实体。当我从数据库中检索此客户并调用getOrders时,它将返回空集。这是正常行为吗?如果是,当我添加新的Order实体时,我该怎么做以自动刷新此集合? 问题答案: Jpa不会为您维护关系,因此应用程序需要设置双向关系的两端,以使它们与数据库保持同步。当您设置了order-> customer关系

  • 我创建了一个“文档”实体: 例如 多个文档可以与不同的实体类型相关:post、userProfile等 例如,在发布实体中,我有几个字段,它们都指定文档关系。 我不清楚如何使文档关系双向。我曾希望在文档上有一个字段,如: 这样,如果我查询文档实体的父关系,我会得到如下结果: 但是Typeorm似乎想让我为文件实体上的每个父关系字段定义一个精确的匹配字段,比如: 为了简单起见,本例中没有M:N关系:

  • 我在将带有@ManyToOne关系的实体(雇员)映射到带有@OneToMany关系的实体(社区)时遇到了问题。 当我将一个实体(社区)分配给一个实体(员工),其中社区的值为空时,它工作正常。 问题出现了,如果雇员已经为社区分配了价值。当我更改该值并保存更改时,该员工为社区获得了新的值,并且这个新社区在集合中获得了该员工。唯一的问题是,老社区仍然有这个员工在收集,但它应该被删除。这只有在数据库重新启

  • 问题内容: 假设我们具有以下实体: 在更新中可以理解,我们需要保持双方的关系如下: 到目前为止一切都很好。问题是,我是否应按以下所述在双方上进行合并,并且避免使用级联进行第二次合并? 还是合并拥有者足够?这些合并是否还应该在Transaction或EJB内部进行?还是在具有分离实体的简单控制器方法上完成它? 问题答案: 问题是,我是否应按以下所述在双方上进行合并,并且避免使用级联进行第二次合并?

  • 7.4.1. 一对多(one to many)/多对一(many to one) 双向多对一关联 是最常见的关联关系。下面的例子解释了这种标准的父/子关联关系。 <class name="Person"> <id name="id" column="personId"> <generator class="native"/> </id> <many-to-

  • 问题内容: @Entity public class A { @GeneratedValue @Id private long id; 建立关系,我必须打电话 为什么两者都是必要的,为什么仅仅做是不够的 要么 ? 该关系存储在联接表中,并将更新该联接表。 但是当我之后进行查询时,它为空。这是为什么? 这是一个测试案例,说明了这个问题。请注意,最后一个断言失败。 动机: 当数量增加时,通过更改“仅一