0

Эта ошибка возникает в моем проекте laravel 5.1 при попытке получить доступ к http://localhost:8000/dashboard.user.update после того, как я нажму Submit на мою форму edit.Laravel 5.1 - Ошибка маршрутов - NotFoundHttpException в строке RouteCollection.php 143:

NotFoundHttpException in RouteCollection.php line 143: 

Эта ошибка происходит, когда я бегу update функцию в моем контроллере. У меня нет ошибки при запуске другой функции, например index или show.

Это мои маршруты:

... 
// Dashboard routes... 
Route::resource('dashboard/user', 'UserController'); 
Route::resource('dashboard', 'DashboardController'); 
... 

Я уже бежит php artisan route:list, чтобы увидеть, если мои маршруты работают:

+--------+----------+-----------------------+------------------------+---------------------------------------------+------------+ 
| Domain | Method | URI     | Name     | Action          | Middleware | 
+--------+----------+-----------------------+------------------------+---------------------------------------------+------------+ 
... 
|  | POST  | dashboard/user  | dashboard.user.store | App\Http\Controllers\[email protected] | auth  | 
|  | GET|HEAD | dashboard/user  | dashboard.user.index | App\Http\Controllers\[email protected] | auth  | 
|  | GET|HEAD | dashboard/user/create | dashboard.user.create | App\Http\Controllers\[email protected] | auth  | 
|  | DELETE | dashboard/user/{user} | dashboard.user.destroy | App\Http\Controllers\[email protected] | auth  | 
|  | GET|HEAD | dashboard/user/{user} | dashboard.user.show | App\Http\Controllers\[email protected] | auth  | 
|  | PUT  | dashboard/user/{user} | dashboard.user.update | App\Http\Controllers\[email protected] | auth  | 
|  | PATCH | dashboard/user/{user} |      | App\Http\Controllers\[email protected] | auth  | 
... 

Теперь я не знаю, что делать, может помочь?

+0

вы не должны получить доступ к маршруту, который way..it должен быть HTTP: // локальный: 8000/приборная панель/пользователь/идентификатор был идентификатор идентификатор user – JLPuro

+0

@JLPuro, да, 'localhost: 8000/dashboard/user/user_id' - это способ доступа при показе данных. У меня нет ошибки при запуске 'localhost: 8000/dashboard/user/user_id'' show' или 'localhost: 8000/dashboard/user/user_id/edit' для' edit'. Мне нужно «обновить». – wahyueka31

+0

@JLPuro, кстати, использование 'http: // localhost: 8000/dashboard.user.update' не является моим способом доступа к маршруту. Ларавел сделал. Этот URI отображается в моем URL-адресе браузера. – wahyueka31

ответ

0

Как и в вашей таблице маршрутов, для вызова обновления требуется PUT или PATCH. Ваш маршрут правильный, но laravel проверяет маршруты также для типа метода. Я думаю, что вы хотите отобразить представление и не возвращать json (RestAPI), если это возможно, чем неявные контроллеры намного лучше ресурсов!

http://laravel.com/docs/5.1/controllers#implicit-controllers

Если вы хотите использовать их, вы должны переименовать методы GetIndex(), getEdit(), postStore(), и если вы хотите сообщение не ставить, чем postUpdate().

0

Если это обновление, сообщите laravel, это запрос «PUT». Поскольку просто метод POST для этого URL-адреса с user_id не существует.

<input name="_method" type="hidden" value="PUT"> 

Что-то вроде этого:

<form method="POST" action="http://localhost:8000/dashboard/user/1"> 
    <input name="_method" type="hidden" value="PUT"> 
    //... 
Смежные вопросы