я хочу разрешить пользователям, у которых есть закладки. это означает, что пользователи могут создавать закладки для постов, статей и т. д. c ... так что это моя схема. id идентификаторов закладок id bookmarkable_id bookmarkable_type user_id идентификаторы статей id идентификаторы записей, как вы можете видеть, что это отношение Polymorphi c.
Ну, я могу добавить закладку для статьи, и это нормально. Моя проблема, когда я хочу получить закладки пользователя. Представьте, что у пользователя есть 4 сообщения, которые были добавлены в закладки. он хочет их видеть.
я написал для него отношение, но оно возвращает []; (у пользователя есть хотя бы одно сообщение с закладкой)
Пользователь. php
public function bookmarks()
{
return $this->morphMany(Bookmark::class, 'bookmarks', 'bookmarkable_type','user_id');
}
это результат
Illuminate\Database\Eloquent\Collection {#313 ▼
#items: []
}
и это модель закладки:
public function bookmarkable()
{
return $this->morphTo();
}
public function articles()
{
return $this->belongsTo(Article::class ,'bookmarkable_id','id');
}
и вот как я пытаюсь получить доступ к закладкам:
$articles = auth()->user()->bookmarks;
dd($articles);
когда я использую это для получения закладок:
public function bookmarks()
{
return $this->hasOne(Bookmark::class, 'user_id','id');
}
он вернет запись в таблице закладок.