Laravel ownToMany возвращает только одну запись? - PullRequest
0 голосов
/ 20 июня 2020

У меня 3 таблицы, попробую описать схему.

scraper_profiles
    id
    name

scraper_collections
    id
    name

scraper_collection_entries
    profile_id
    collection_id

Я пытаюсь вернуть элементы, которые принадлежат коллекции,

class ScraperCollection extends Model
{
    public function items()
    {
        return $this->belongsToMany(ScraperProfile::class, 'scraper_collection_entries', 'profile_id', 'collection_id');
    }
}

Хотя это возвращает только одну запись в моем ресурсе?

class CollectionResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'name' => $this->name,
            'creator' => new UserResource($this->creator),
            'items' => ScraperProfileResource::collection($this->items),
            'created_at' => $this->created_at,
            'updated_at' => $this->updated_at,
        ];
    }
}

1 Ответ

2 голосов
/ 20 июня 2020

Ваше определение внешних ключей "Многие ко многим" перевернуто. *, если первым параметром является класс A , то последним параметром определения должен быть внешний ключ A (A_id).

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