Как исправить ошибку с определением маршрутов ресурса - PullRequest
0 голосов
/ 10 января 2019

Здесь https://laravel.com/docs/5.7/controllers#resource-controllers Я читал, что определяющий ресурс У меня были методы post / put:

POST    /photos store   photos.store
...
PUT/PATCH   /photos/{photo} update  photos.update

но определяем в маршрутах / web.php следующие ресурсы маршрутов:

Route::resource('site-subscriptions', 'Admin\SiteSubscriptionsController', [ 'except' => [] ] )->middleware('WorkTextString');

с определением формы:

   <form method="POST" action="http://local-votes.com/admin/site-subscriptions/store" accept-charset="UTF-8" id="form_site_subscription_edit" enctype="multipart/form-data">
            <input type="hidden" name="_token" value="X7rzFjRq4o4TeA67FmkQTMI9ApjygM3ovE1C14i2">

Я получил ошибку для POST:

  "message": "",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException",
    "file": "/mnt/_work_sdb8/wwwroot/lar/votes/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
    "line": 255,

Ошибка в определении web.php?

Спасибо!

1 Ответ

0 голосов
/ 12 января 2019

если вы работаете с blade-сервером, если получить рабочую ссылку таким образом плохо, вам следует использовать помощники laravel, как показано ниже:

<form method="POST" action="{{route('site-subscriptions.store')}}" accept-charset="UTF-8" id="form_site_subscription_edit" enctype="multipart/form-data">

таким образом вы убедитесь, что ссылки верны, даже если вы изменили APP_URL в развертывании.

Что на самом деле сделано, так это вызов route вспомогательной функции для получения URL-адреса для вас по имени маршрута.

из документов :

маршрут ()

Функция маршрута генерирует URL для данного именованного маршрута:

$ url = route ('routeName'); Если маршрут принимает параметры, вы можете передать их в качестве второго аргумента методу:

$ url = route ('routeName', ['id' => 1]); По умолчанию функция маршрута генерирует абсолютный URL. Если вы хотите сгенерировать относительный URL, вы можете передать false в качестве третьего аргумента:

$ url = route ('routeName', ['id' => 1], false);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...