Почему не выводятся тэги при полиморфной связи в Laravel 5.6?

Потребовалось на сайте добавить полиморфные связи для получения доп. данных блогов (мой сайт - это блог).

Что я имею:
БД
Tags:
5aa61b4e3bb03085738922.pngTaggables:
5aa61b52da6fb976282621.pngBlogs:
5aa61b5864514743680757.png
Код
Blogs:
<?php
namespace App\Models\Blogs;

use App\User;
use Illuminate\Database\Eloquent\Model;

class Blogs extends Model{

    protected $table = 'blogs';
    protected $primaryKey = 'id';
    protected $fillable = [];
    protected $hidden = [];
    protected $casts = [];

    public static function getBlogs(int $paginate = 10){
        $blogs = Blogs::paginate($paginate);

        if($blogs){
            $blogs->load('author');
            $blogs->load('tags');
        }

        return $blogs;
    }

    /*
     *  Отношения
     */

    /**
     * Получение авторов блогов
     * @return \Illuminate\Database\Eloquent\Relations\HasOne
     */
    public function author(){
        return $this->hasOne(User::class, 'id', 'author_blogs');
    }

    /**
     * Получение тэгов у блога
     * @return \Illuminate\Database\Eloquent\Relations\MorphToMany
     */
    public function tags(){
        return $this->morphToMany(Tags::class, 'taggable');
    }
}


Tags:
<?php
namespace App\Models\Blogs;

use Illuminate\Database\Eloquent\Model;

class Tags extends Model{

    protected $table = 'tags';
    protected $primaryKey = 'id';
    protected $fillable = [];
    protected $hidden = [];
    protected $casts = [];

    /*
     * Отношения
     */

    /**
     * Полиморфное отношение блогов с тэгами
     * @return \Illuminate\Database\Eloquent\Relations\MorphToMany
     */
    public function blogs(){
        return $this->morphedByMany(Blogs::class, 'taggable');
    }
}



И в итоге я получаю только блоги и его авторов, но ни как не сами тэги. Подскажите куда копать, пожалуйста!)
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
@anlamas
В базу данные вручную добавлял? Потому что как я помню, Лара в taggable_type хранит класс, типа "App\Blog".
Может в этом ошибка?
P.S. У тебя класс представляет сущность(одну), поэтому рекомендую переименовать на Blog, Tag.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы