Красноречивые отношения многие ко многим без среднего стола - PullRequest
0 голосов
/ 18 октября 2018

Я новичок в Eloquent и сильно борюсь со следующим.

В моей базе данных (MySQL 5.7) есть 2 таблицы и структура, как показано ниже.

статья:

{
    _id: 1,
    title: "xxx",
    content: "xxx",
    tag_ids: [
        4,
        5
    ]
}

тег:

{
    _id: 4,
    tag: "tag1"
}

В ArticleModel есть приведение

protected $casts = [
    "tags" => "array"
];

Можно установить отношения многие ко многим без среднего стола?

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 20 октября 2018

Я создал пакет со связями JSON: https://github.com/staudenmeir/eloquent-json-relations

Вы можете создать отношение многие ко многим, как это:

class Article extends Model
{
    use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;

    protected $casts = [
       'tag_ids' => 'array'
    ];

    public function tags()
    {
        return $this->belongsToJson(Tag::class, 'tag_ids');
    }
}

class Tag extends Model
{
    use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;

    public function articles()
    {
       return $this->hasManyJson(Article::class, 'tag_ids');
    }
}
...