Laravel5.6-不需要的路线

时间:2018-06-27 10:16:37

标签: laravel-5 routes

我的EmployeeCOntroller的edit.blade视图出现问题。

Edit.blade.php

 <form method="PUT" action="{{ route('employees.update', $employee_detail->id) }}" aria-label="{{ __('Edit') }}" enctype="multipart/form-data">

web.php

Route::patch('/employee/{id}', 'EmployeeController@update')->name('employees.update');
Route::get('/employee/{id}', 'EmployeeController@destroy')->name('employees.delete');

EmployeeController

public function update(Request $request, $id)

我不知道为什么,但是对我的控制器上的destroy()函数的请求!

我已经完成了php artisan route:list

+--------+----------+-------------------------------------+--------------------------------+------------------------------------------------------------------------+----------------------------------------------+
| Domain | Method   | URI                                 | Name                           | Action                                                                 | Middleware                                   |
+--------+----------+-------------------------------------+--------------------------------+------------------------------------------------------------------------+----------------------------------------------+
|        | GET|HEAD | /                                   |                                | Closure                                                                | web                                          |
|        | GET|HEAD | _debugbar/assets/javascript         | debugbar.assets.js             | Barryvdh\Debugbar\Controllers\AssetController@js                       | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
|        | GET|HEAD | _debugbar/assets/stylesheets        | debugbar.assets.css            | Barryvdh\Debugbar\Controllers\AssetController@css                      | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
|        | DELETE   | _debugbar/cache/{key}/{tags?}       | debugbar.cache.delete          | Barryvdh\Debugbar\Controllers\CacheController@delete                   | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
|        | GET|HEAD | _debugbar/clockwork/{id}            | debugbar.clockwork             | Barryvdh\Debugbar\Controllers\OpenHandlerController@clockwork          | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
|        | GET|HEAD | _debugbar/open                      | debugbar.openhandler           | Barryvdh\Debugbar\Controllers\OpenHandlerController@handle             | Barryvdh\Debugbar\Middleware\DebugbarEnabled |
|        | GET|HEAD | admin                               | admin                          | App\Http\Controllers\Back\AdminController@index                        | web                                          |
|        | GET|HEAD | admin/employee                      | employees.index                | App\Http\Controllers\Back\EmployeeController@index                     | web,auth                                     |
|        | GET|HEAD | admin/employee/create               | employees.create               | App\Http\Controllers\Back\EmployeeController@create                    | web,auth                                     |
|        | POST     | admin/employee/create               | employees.store                | App\Http\Controllers\Back\EmployeeController@store                     | web,auth                                     |
|        | GET|HEAD | admin/employee/show/{id}            | employees.show                 | App\Http\Controllers\Back\EmployeeController@show                      | web,auth                                     |
|        | GET|HEAD | admin/employee/{id}                 | employees.delete               | App\Http\Controllers\Back\EmployeeController@destroy                   | web,auth                                     |
|        | PUT      | admin/employee/{id}                 | employees.update               | App\Http\Controllers\Back\EmployeeController@update                    | web,auth                                     |
|        | POST     | admin/employee/{id}/dossiers/create | create.document.employee.store | App\Http\Controllers\Back\DossierController@dossiers_employees_store   | web                                          |
|        | GET|HEAD | admin/employee/{id}/dossiers/create | create.document.employee.show  | App\Http\Controllers\Back\DossierController@dossiers_employees_create  | web                                          |
|        | GET|HEAD | admin/employee/{id}/edit            | employees.edit                 | App\Http\Controllers\Back\EmployeeController@edit                      | web,auth                                     |
|        | GET|HEAD | admin/entreprise                    | entreprises.index              | App\Http\Controllers\Back\EntrepriseController@index                   | web,auth                                     |
|        | POST     | admin/entreprise/create             | entreprises.store              | App\Http\Controllers\Back\EntrepriseController@store                   | web,auth                                     |
|        | GET|HEAD | admin/entreprise/create             | entreprises.create             | App\Http\Controllers\Back\EntrepriseController@create                  | web,auth                                     |
|        | GET|HEAD | admin/entreprise/show/{id}          | entreprises.show               | App\Http\Controllers\Back\EntrepriseController@show                    | web,auth                                     |
|        | GET|HEAD | api/user                            |                                | Closure                                                                | api,auth:api                                 |
|        | GET|HEAD | home                                | home                           | App\Http\Controllers\HomeController@index                              | web,auth                                     |
|        | POST     | login                               |                                | App\Http\Controllers\Auth\LoginController@login                        | web,guest                                    |
|        | GET|HEAD | login                               | login                          | App\Http\Controllers\Auth\LoginController@showLoginForm                | web,guest                                    |
|        | POST     | logout                              | logout                         | App\Http\Controllers\Auth\LoginController@logout                       | web                                          |
|        | GET|HEAD | logout                              | logout                         | App\Http\Controllers\Auth\LoginController@logout                       | web                                          |
|        | POST     | password/email                      | password.email                 | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  | web,guest                                    |
|        | GET|HEAD | password/reset                      | password.request               | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest                                    |
|        | POST     | password/reset                      |                                | App\Http\Controllers\Auth\ResetPasswordController@reset                | web,guest                                    |
|        | GET|HEAD | password/reset/{token}              | password.reset                 | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        | web,guest                                    |
|        | GET|HEAD | register                            | register                       | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      | web,guest                                    |
|        | POST     | register                            |                                | App\Http\Controllers\Auth\RegisterController@register                  | web,guest                                    |
+--------+----------+-------------------------------------+--------------------------------+------------------------------------------------------------------------+----------------------------------------------+

和php artisan route:clear

我也尝试过:

  <form method="POST" action="{{ route('employees.update', $employee_detail->id) }}" aria-label="{{ __('Edit') }}" enctype="multipart/form-data">
        @method('PUT')
        @csrf

,并保留web.php中设计的路由。

它仍然没有任何作用。 继续调度到destroy()而不是update()。

有人有想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

这是因为您要尝试执行的操作以及您期望的操作。

在您的路由文件中尝试一下:

Route::put('/employee/{id}', 'EmployeeController@update')->name('employees.update');

如果您想了解“ PUT”和“ PATCH” HTTP动词之间的区别,我添加了一个链接:https://williamdurand.fr/2014/02/14/please-do-not-patch-like-an-idiot/

HTML表单不支持PUT,PATCH或DELETE操作。因此,在定义从HTML表单调用的PUT,PATCH或DELETE路由时,您将需要向表单添加一个隐藏的_method字段。通过_method字段发送的值将用作HTTP请求方法:

<form action="{{ route('employees.update', $employee_detail->id) }}" method="POST">
    <input type="hidden" name="_method" value="PUT">
</form>

您可以使用@method Blade指令生成_method输入:

<form action="{{ route('employees.update', $employee_detail->id) }}" method="POST">
    @method('PUT')
</form>

答案 1 :(得分:0)

 | PUT      | admin/employee/{id}/update          | employees.update               | App\Http\Controllers\Back\EmployeeController@update                    | web,auth 
 | GET|HEAD | admin/employee/{id}/delete          | employees.delete               | App\Http\Controllers\Back\EmployeeController@destroy                   | web,auth                                     |

我已经在我的路线上添加了更新和删除,并且现在可以正常工作了。...

Route::put('/employee/{id}/update', 'EmployeeController@update')->name('employees.update');
Route::get('/employee/{id}/delete', 'EmployeeController@destroy')->name('employees.delete');

对我来说很奇怪...