我试图在我的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完成它?