Laravel: Как определить отношения, когда первичный ключ модели заменен на слаг? - PullRequest
0 голосов
/ 17 ноября 2018

Мне нравится определять «многие ко многим полиморфным отношениям», например, то, которое упоминается в документации laravel, но с одним отличием, что мне нравится, когда первичный ключ изменяется на slug. Я делаю это в модели по protected $primaryKey = 'slug', но когда я это делаю, я больше не могу восстановить отношения. Я думаю, что я должен изменить аргументы morphToMany и morphedByMany метода, чтобы это исправить. Однако я не знаю, как мне это сделать. Буду признателен за вашу помощь.

posts
    id - integer
    name - string
    slug - string (primary key)

videos
    id - integer
    name - string

tags
    id - integer
    name - string

taggables
    tag_id - integer
    taggable_id - integer
    taggable_type - string

1 Ответ

0 голосов
/ 18 ноября 2018

Вот так это выглядит.

// morphToMany($related, $name, $table = null, $foreignPivotKey = null,
                            $relatedPivotKey = null, $parentKey = null,
                            $relatedKey = null, $inverse = false)

Так что попробуйте это в своей модели Post.

class Post extends Model
{
    public function tags()
    {
         return $this->morphToMany(Tag::class, 'taggable', null, null, 'taggable_id');
    }
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...