Laravel 405 (метод запрещен)

Я хочу реализовать подобную систему, но я не знаю, как отправить запрос на подобный контроллер, как только пользователь нажимает кнопку Like, которая является a-тегом. Я создал новый контроллер с именем LikeController из-за того, что у ArticleController уже есть метод POST, который является хранилищем.

Вот код PHP для контроллера

use App\Article;
use App\Like;
use App\Events\NewLike;

class LikeController extends Controller
{
  public function store(Request $request)
  {
      $id = $request['id'];
      $article = Article::findOrFail($id);
      $user_id = $request->user()->id;
      $like = Like::where(['likeable_id' => $article->id, 'user_id' => $user_id]);
      $like_type = $possibleLike->like_type;

      // check if article exists

      if (!$like) {
          $like = new Like([
              'user_id' => $user_id,
              'like_type' => 'like',
              'likeable_id' => $article->id,
              'likeable_type' => 'article'
          ]);
      } else {
          if ($like->like_type == 'like') {
              $like->like_type == 'dislike';
          } else if ($like->like_type == 'dislike') {
              $like->like_type == 'like';
          }
      }
      $like->save();

      event(new NewLike($like));


      return redirect('/articles'.$article->id);
  }
}

Вот мой Javascript в компоненте vue, чтобы инициировать запрос:

export default {
  props: ['articleId'],
  methods: {
    activateLike (articleId) {
      axios({
        type: 'POST',
        url: '/likes',
        headers: {
          'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
        },
        id: articleId
      }).then(response => {
        console.info(response.data)
      }).catch(function(error) {
        console.info(error)
      })
    }
  }
}
</script>

Если кому-то понадобится дополнительная информация, я размещу ее ниже здесь.


Маршруты:

Route::get('/', 'PagesController@index');
Route::get('/about', 'PagesController@about');
Route::get('/leaderboard', 'PagesController@leaderboard');

Route::resource('articles', 'ArticlesController');
Route::get('article/{category}', 'ArticlesController@display');

Route::post('/likes', 'LikeController@store');

Auth::routes();

Route::get('/dashboard', 'DashboardController@index')->name('dashboard');

пожалуйста, укажите маршруты

Hussein 22.07.2018 04:31

Хусейн прав, метод не разрешен возникает, когда вы попадаете в маршрут с неправильным HTTP-глаголом (например, маршрут для get, но вместо этого вы отправили post). в случае, если ваш маршрут уже правильный, попробуйте php artisan route:clear, чтобы очистить кеш маршрутизации.

Bagus Tesa 22.07.2018 05:04

Добавлены маршруты к посту. @ Хусейн

Adrian Warholm 22.07.2018 05:25

также, если это не сработало, попробуйте удалить завершающую косую черту, например, url: 'likes', если это тоже не сработало, проверьте вкладку сети, чтобы узнать, правильный ли URL-адрес

Hussein 22.07.2018 05:28

URl правильный. Он набирает localhost: 8000 / лайков

Adrian Warholm 22.07.2018 05:37

просто посмотрите, куда ваша страница приведет вас без ajax. или перейдите по URL-адресу, указанному в ошибке ajax (если есть), и посмотрите, что вас сдерживает. :п

ujjwal verma 22.07.2018 06:01

В нем говорится, что MethodNotAllowedHTTPException

Adrian Warholm 22.07.2018 06:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
1 774
0

Другие вопросы по теме