Я работал над этим часами и не могу найти ответ на простой вопрос. Я не могу восстановить мои полиморфные многие ко многим через morphedByMany. Соответствующий код ниже:
Фрагмент модели тега:
class Tag extends Eloquent
{
protected $table = 'tags';
public function posts()
{
return $this->morphedByMany('Post', 'taggable');
}
Фрагмент описания модели:
class Post extends Eloquent
{
protected $table = 'posts';
public $incrementing = false;
public function tags()
{
return $this->morphToMany('Tag', 'taggable');
}
Оскорбительная линия. Несмотря на то, что есть теги для сообщения и сообщения для тегов, которые я вижу в базе данных, эта строка возвращает NULL независимо от того, что я настраиваю:
$posts = Tag::find(1)->posts;
Схемы (обратите внимание, я также пробовал это без индексации этих полей, а также с наличием внешнего ключа для tag_id):
Schema::create('taggables', function(Blueprint $table)
{
$table->increments('id');
$table->string('taggable_type')->index();
$table->bigInteger('taggable_id')->index();
$table->integer('tag_id')->unsigned()->index();
$table->timestamps();
});
Если вам нужен какой-либо другой код, дайте мне знать. Я в конце моей веревки.
Задача ещё не решена.
Других решений пока нет …