Laravel在同一模型上的ManyToMany关系

我试图在我的Tag模型上建立双向的ManyToMany关系,但是遇到了这个“问题”。


我的模型如下所示:



<?php


namespace App;


use Illuminate\Database\Eloquent\Model;


class Tag extends Model

{

    protected $table = 'tags';

    public $timestamps = false;


    public function tags()

    {

        return $this->belongsToMany(Tag::class, 'tag_tag', 'tag_one_id', 'tag_two_id');

    }


}


因此,现在让我们说我的标签表中有Tag1和Tag2,然后将Tag2与Tag1相关联。现在,我的数据透视表将如下所示:


+----+------------+------------+

| id | tag_one_id | tag_two_id |

+----+------------+------------+

| 1  | 1          | 2          |

+----+------------+------------+

当我尝试此代码时:


$tag = Tag::find(1);

$tag->tags()->get();

我得到了Tag2实例,它是正确的。


但是,当我尝试运行此代码时:


$tag = Tag::find(2);

$tag->tags()->get();

我想收到Tag1实例,但没有。


是否可以仅使用模型上的一种方法使用Laravel default Eloquent完成它?


Qyouu
浏览 143回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP