Я пытаюсь установить двунаправленное отношение 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, но не получаю.
Можно ли сделать это с помощью Eloquent по умолчанию Laravel, используя только один метод в модели?