У меня есть система следующих пользователей для моего приложения, написанного на Laravel, и я пытаюсь получить данные из моей БД на основе определенных подписчиков. Это приложение рецептов с таблицей пользователей, рецептов и подписчиков. В настоящее время я получаю подписчиков пользователей, написав $ user-> учеников. Тем не менее, я хочу настроить свои отношения таким образом, чтобы я мог получить конкретные рецепты, которые принадлежат определенным пользователям-последователям. Что-то вроде $ user-> последователи-> рецепты. У меня нет правильной логики или Eloquent отношений, чтобы сделать это прямо сейчас. Любые предложения о том, как это может быть сделано?
Модель пользователя
public function followers(){
return $this->belongsToMany(User::class, 'followers', 'leader_id', 'follower_id')->withTimestamps();
}
public function followings(){
return $this->belongsToMany(User::class, 'followers', 'follower_id', 'leader_id')->withTimestamps();
}
Модель рецепта
public function user(){
return $this->belongsTo('App\User');
}
public function category(){
return $this->belongsTo('App\Category');
}
public function comments(){
return $this->hasMany('App\Comment');
}
public function likes(){
return $this->hasMany('App\Like');
}
FollowerController
class FollowerController extends Controller
{
public function followUser($id){
$user = User::find($id);
if(!$user){
return redirect()->back()->with('error', 'User does not exist.');
}
$user->followers()->attach(auth()->user()->id);
return redirect()->back()->with('success', 'You now follow the user!');
}
public function unfollowUser($id){
$user = User::find($id);
if(!$user){
return redirect()->back()->with('error', 'User does not exist.');
}
$user->followers()->detach(auth()->user()->id);
return redirect()->back()->with('success', 'You unfollowed the user!');
}
public function show($id){
$user = User::find($id);
$followers = $user->followers;
$followings = $user->followings;
return view('welcome')->with('user', $user);
}
Можно ли как-то настроить отношения между моделями User, Recipe и Follow? Каков наилучший способ получения любой информации, относящейся к определенному набору последователей пользователя?
Дайте мне знать, если мне нужно больше поделиться кодом с вами, ребята! Спасибо за помощь!