У меня есть приложение, состоящее из этих таблиц
- пользователей
- каналов (с
user_id
внешним ключом для пользователя) - списков воспроизведения (с
user_id
внешний ключ для пользователя и внешний channel_id
для каналов) - дорожки (с
playlist_id
внешним ключом для списков воспроизведения, НО НЕ user_id
внешний ключ)
User
модельопределяется с помощью:
public function channels()
{
return $this->hasMany('App\Channel');
}
Channel
модель определяется с помощью:
public function playlists()
{
return $this->hasMany('App\Playlist');
}
(и $this->belongsTo('App\User')
)
Playlist
модель определяется с:
public function tracks()
{
return $this->hasMany('App\Track');
}
(и $this->belongsTo('App\Channel')
)
Track
модель определяется с помощью:
public function playlist()
{
return $this->belongsTo('App\Playlist');
}
Теперь при перечислении треков в конкретном списке воспроизведения Iсделать это:
function list($playlist) {
$tracks = Track::with('playlist')->get();
return response()->json($tracks);
}
Это правильно работает на странице http://.../tracks/2
(где 2 - идентификатор списка воспроизведения), но если пользователь изменит 2 на 3, он потенциально может увидеть дорожки в списке воспроизведения # 3, которые могутне будь его.Итак, как мне получить идентификатор пользователя из списка воспроизведения, чтобы показать только дорожки, принадлежащие списку воспроизведения, который фактически есть у пользователя?