【问题标题】:PHP/Laravel Construct a recursive tree of ManyToMany relationshipsPHP/Laravel 构建多对多关系的递归树
【发布时间】:2019-02-28 17:07:44
【问题描述】:

我有两个表,它们之间存在多对多关系

Artist
id:unique id
qid:shared id
name:string

Influence
id:id
qid:shared id
name:string
is_person:boolean

Influence 表中的一些名称也存在于 Artist 表中,并且共享一个 qid。 我想从存在于艺术家数据库中的所有艺术家和他们影响的人中构建一棵树。我想递归地遍历所有影响并获得嵌套在父级下的他们的影响。我不知道每段感情会发展到什么程度。

public function getRelationships() {
    foreach($artists as $artist) {
        foreach($artist->influences as $influence) {
            if($influence->is_person) {
                $child = Artist::where('qid' , '=', $influence->qid);
                //somehow call getRelationships() here 
                //again with what I need to construct the relationship
                //tree
            }
        }
    }
}

【问题讨论】:

    标签: php laravel recursion


    【解决方案1】:

    我认为这段代码对你有用 但是你需要让一个愚蠢的工匠成为你的根的父亲,并且需要在你调用它时将它传递给它

    public function getRelationships($artist) {
       $returndata['Artist']=$artist;
        foreach($artist->influences as $influence) {
            if($influence->is_person) {
                $child = Artist::where('qid' , '=', $influence->qid);
                $returnData['influence'][]=getRelationships($child);
            }
       }
     return $returnData;
    }
    

    但是如果你对我有问题评论,我不知道如果影响不是人我该怎么办!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 2016-09-19
      • 2020-07-25
      • 2019-09-12
      相关资源
      最近更新 更多