Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 18.05.2020 21:48:51

The GET method is not supported for this route.

После команды

php artisan route:cache

получаю ошибку при заходе на страницу:

The GET method is not supported for this route. Supported methods: HEAD.

После

php artisan route:clear

ошибка пропадает.

Route::group(['namespace'=>'Test','middleware'=>'test_auth'], function()
{
   Route::get('/', "Grid\TestController@index")->name('index');
...
});

Кто-нибудь сталкивался с такой проблемой?

Не в сети

#2 19.05.2020 07:50:52

Re: The GET method is not supported for this route.

https://laravel.com/docs/master/controllers

Closure based routes cannot be cached. To use route caching, you must convert any Closure routes to controller classes.

может в этом дело?


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 19.05.2020 13:15:34

Re: The GET method is not supported for this route.

Так, вроде, у меня все маршруты на контроллерах. Ошибка выходит только на указанном маршруте "/", остальные работают корректно. Какой бы контроллер на "/" не привязывал, выходит ошибка.

Не в сети

#4 19.05.2020 14:49:07

Re: The GET method is not supported for this route.

Ну не факт, что ошибка именно в этой строке. Маршрут может не попадать в кеш потому что что-то плохое происходит в процессе кеширования.

Выходят какие-то ошибки при выполнении команды? Есть что-то в логах?
Покажи весть файл.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#5 19.05.2020 17:50:59

Re: The GET method is not supported for this route.

Сама команда кэширования проходит без видимых предупреждений

Route cache cleared!
Routes cached successfully!

Из многочисленных маршрутов не работает только этот.
В файле кэша bootstrap/cache/routes-v7.php, если это он, конечно, маршрут есть.

   '/' => 
      array (
        0 => 
        array (
          0 => 
          array (
            '_route' => 'index',
          ),
          1 => NULL,
          2 => 
          array (
            'GET' => 0,
            'HEAD' => 1,
          ),
          3 => NULL,
          4 => false,
          5 => false,
          6 => NULL,
        ),
      ),
'index' => 
    array (
      'methods' => 
      array (
        0 => 'GET',
        1 => 'HEAD',
      ),
      'uri' => '/',
      'action' => 
      array (
        'middleware' => 
        array (
          0 => 'web',
          1 => 'test_auth',
        ),
        'uses' => 'App\\Http\\Controllers\\Test\\Grid\\TestGridController@index',
        'controller' => 'App\\Http\\Controllers\\Test\\Grid\\TestGridController@index',
        'namespace' => 'App\\Http\\Controllers\\Test',
        'prefix' => NULL,
        'where' => 
        array (
        ),
        'as' => 'index',
      ),
      'fallback' => false,
      'defaults' => 
      array (
      ),
      'wheres' => 
      array (
      ),
      'bindingFields' => 
      array (
      ),
    ),

На локальной машинке и VDS Apache такой проблемы получить не удалось, только на сервере IIS. В общем, пока отложил кэширование маршрутов, и без него работает быстро smile. Спасибо за помощь:)

Не в сети

#6 15.06.2020 15:55:31

Re: The GET method is not supported for this route.

Посмотри все маршруты через

php artisan route:list

И посмотри в списке какие методы поддерживает твой маршрут.

Не в сети

Подвал раздела