Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 30.08.2019 00:29:56

Связь через поле

Здравствуйте,

Есть категории, и такая связь:
public function lessons()
{
    return $this->belongsToMany(Knowledge::class, 'knowledge_category')->withTimestamps();
}

Все работает на ура, но тут взбрело в голову категории сделать вообще общие для всего проекта.
В каждой категории есть поле class, где на выбор: Knowledge::class, Post::class, Article::class
Так же есть поле table там many-to-many таблицы: knowledge_category, post_category, aticle_category

Нужно выбрать все категории с их связными данными, в это категории все посты, в другой артикулы и тд.
Попробовал так, не сработало:
public function items()
{
    return $this->belongsToMany(new $this->class, $this->table)->withTimestamps();
}

Скорее всего глупо, подскажите как правильно
Спасибо

Изменено borodatych (30.08.2019 00:30:38)

Не в сети

#2 30.08.2019 13:30:59

Re: Связь через поле

https://laravel.com/docs/master/eloquen … -relations

в примере теги, у тебя категории — вроде смысл один


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела