Laravel Eloquent имеет много через отношение + нумерация страниц

У меня есть три таблицы:

Videos:
-id
-name
-another fields

Cats:
-id
-name
-another fields

Cats_videos:
-id
-cat_id
-video_id

И три модели Eloquent:

class cat extends Model
{
protected $table = 'cat';

public function AllCatVideos()
{
return $this->hasManyThrough('App\videos', 'App\cats_videos','cat_id','id');
}
}

class videos extends Model
{
public $timestamps = false;
protected $table ='videos';
}

class cats_videos extends Model
{
protected $table = 'cats_videos';
}

Итак, я хочу получить все видео в одной кошке, а затем разбить результаты на страницы. Я пытаюсь сделать так:

$cat = new Cats();
$videos = $cat->find(58)->AllCatVideos()->toSql();

И я получил sql, как это:

select * from `videos` inner join `cats_videos` on `cats_videos`.`id` = `videos`.`id` where `cats_videos`.`cat_id` = 58

Но мне нужно «cats_videos,video_id знак равно videos,id» вместо «cats_videos,id знак равно videos,id«. Как я могу сделать это, используя» hasManyThrough «? Или я должен посмотреть что-то еще?

0

Решение

Задача решена. Мне просто нужно использовать принадлежит ToMany.

class cat extends Model{
public function Videos()
{
return $this->belongsToMany('App\videos','cats_videos','cat_id','video_id');
}}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]