Маршрут Laravel не работает. localhost8000/{route}/create всегда игнорировать

Маршрут Laravel не работает. localhost8000/{route}/create всегда игнорируется. функция create() контроллера, похоже, не вызывается. Браузер пытается перейти на ту же страницу или /home Как это исправить и проверить?

web.php

Route::resource('/debug', 'WorkerController')->except(['index'])->middleware('auth');
class WorkController extends Controller
{
    public function create(WorkRequest $request)
    {
        Log::debug("This function never be called", "!!");

        return view("a");
    }

    public function store(WorkRequest $request)
    {
        $schedules = DB::table('schedules')->get();

        $request->date;
        $request->hours;
        $worker_id = strval($request->user()->id);
        Log::debug('date=' . $request->date);
        //omit

        $registerred_schedules = DB::table('worker_schedules')->where('worker_id', $worker_id)->get();

        return view('workers.create', ['schedules' => $registerred_schedules]);
    }
}
|        | POST      | debug                         | debug.store      | App\Http\Controllers\WorkController@store                    | web,auth   |
|        | GET|HEAD  | debug/create                  | debug.create     | App\Http\Controllers\WorkController@create                   | web,auth   |
|        | DELETE    | debug/{debug}                 | debug.destroy    | App\Http\Controllers\WorkController@destroy                  | web,auth   |
|        | PUT|PATCH | debug/{debug}                 | debug.update     | App\Http\Controllers\WorkController@update                   | web,auth   |
|        | GET|HEAD  | debug/{debug}                 | debug.show       | App\Http\Controllers\WorkController@show                     | web,auth   |
|        | GET|HEAD  | debug/{debug}/edit            | debug.edit       | App\Http\Controllers\WorkController@edit                     | web,auth   |

person Iw Yu    schedule 04.05.2020    source источник
comment
попробуйте назвать свой контроллер действий как «магазин», а не «создать»   -  person OMR    schedule 04.05.2020
comment
вы пробовали этот маршрут localhost:8000/debug/{route}/create?   -  person Kulshreshth K    schedule 04.05.2020
comment
Покажите, пожалуйста, код ссылки, по которой вы переходите на страницу.   -  person Rwd    schedule 04.05.2020
comment
Я попробовал localhost:8000/debug/create.   -  person Iw Yu    schedule 04.05.2020
comment
когда я пытаюсь связать /debug, тогда Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: POST.   -  person Iw Yu    schedule 04.05.2020
comment
Я думаю, это потому, что вы ->except(['index']) исключаете индекс, поэтому по умолчанию /debug будет методом POST, если вы хотите получить к нему доступ по ссылке, вы должны удалить except   -  person Firman Putra    schedule 04.05.2020
comment
ммм. Я изменил и удалил ->except(['index']) , но ничего не изменилось.   -  person Iw Yu    schedule 04.05.2020


Ответы (1)


В твоем случае:

Маршрут /debug указывает на WorkController@store и следует методу POST. Поэтому, когда вы обращаетесь к нему с помощью метода GET, вы получаете исключение.

В то время как debug/create укажите на WorkController@create и следуйте методу GET.

Таким образом, /debug/create должен загружать вашу форму или представление, а /debug должен хранить данные формы.

В вашем контроллере отсутствует метод index, иначе он вызывался бы по умолчанию на /debug и имел бы метод GET.

person Kulshreshth K    schedule 04.05.2020
comment
'Я знаю это. Я пытался связать методом POST/GET, но никакие функции в WorkController не вызываются ">localhost:8000/debug›‹/form›''' - person Iw Yu; 04.05.2020
comment
Пожалуйста, добавьте свою форму в вопрос. - person Kulshreshth K; 04.05.2020