Я реализую систему последователей для своего приложения Laravel, и я получаю сообщение об ошибке, когда пытаюсь нажать на свой контроллер, чтобы обработать новое отслеживание. Я не уверен, что я делаю неправильно здесь...
Модель пользователя
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 followUser($id){
return 'Hello!';
$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!');
}
Маршруты
//Followers
Route::post('/user/{id}/follow', ['as' => 'user.follow', 'uses' => 'FollowerController@followUser']);
Route::post('/user/{id}/unfollow', ['as' => 'user.unfollow', 'uses' => 'FollowerController@unfollowUser']);
Кнопка «Подписаться» в поле зрения
<a href = "{{route('user.follow', $user->id)}}" class = "userButton2 btn">Follow</a>
Я новичок в этом и не совсем уверен, что делаю, поэтому очень вероятно, что я тоже сделал основную ошибку. Пожалуйста, дайте мне знать, если мне нужно прикрепить какой-либо дополнительный код или объяснение. Спасибо!
О да, спасибо большое! Я полностью пропустил это. Еще один вопрос, не лучше ли использовать AJAX-запрос для такой системы следования?
На самом деле это зависит от вашего требования. Если вы не хотите перезагружать каждый раз, когда подписываетесь на кого-то или отписываетесь от него, вам нужен запрос ajax. Я думаю, что в этом виде приложений ajax предпочтительнее.
Понял! Могу ли я написать запрос на получение ajax, используя ту же логику, что и в моем контроллере, а затем определить в своем сценарии, как я хочу манипулировать DOM? Спасибо еще раз!
Да! ты сможешь. Просто отправьте запрос на получение через ajax.






В определении ваших маршрутов вы определяете «user.follow» как почтовый запрос, но, по вашему мнению, вы определяете запрос на получение. Просто измените сообщение о маршрутах, чтобы получить.