Laravel 5.6-404,尽管路线已定义
试图访问admin/users/multidel,这给了我一个404错误 Chrome console.log:Laravel 5.6-404,尽管路线已定义,laravel,laravel-5,Laravel,Laravel 5,试图访问admin/users/multidel,这给了我一个404错误 Chrome console.log: DELETE http://****.test/admin/users/multidel 404 (Not Found) web.php Route::group(['middleware'=>'admin'], function(){ Route::get('/admin', 'AdminController@index')->name('admin.home
DELETE http://****.test/admin/users/multidel 404 (Not Found)
web.php
Route::group(['middleware'=>'admin'], function(){
Route::get('/admin', 'AdminController@index')->name('admin.home');;
Route::delete('admin/users/multidel', 'AdminUsersController@multiDel')->name('users.multidel');
Route::resource('admin/users', 'AdminUsersController');
});
php artisan路由:列表
+--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+--------------+
| | GET|HEAD | / | | App\Http\Controllers\HomeController@index | web,auth |
| | GET|HEAD | admin | admin.home | App\Http\Controllers\AdminController@index | web,admin |
| | POST | admin/users | users.store | App\Http\Controllers\AdminUsersController@store | web,admin |
| | GET|HEAD | admin/users | users.index | App\Http\Controllers\AdminUsersController@index | web,admin |
| | GET|HEAD | admin/users/create | users.create | App\Http\Controllers\AdminUsersController@create | web,admin |
| | DELETE | admin/users/multidel | users.multidel | App\Http\Controllers\AdminUsersController@multiDel | web,admin |
| | PUT|PATCH | admin/users/{user} | users.update | App\Http\Controllers\AdminUsersController@update | web,admin |
| | GET|HEAD | admin/users/{user} | users.show | App\Http\Controllers\AdminUsersController@show | web,admin |
| | DELETE | admin/users/{user} | users.destroy | App\Http\Controllers\AdminUsersController@destroy | web,admin |
| | GET|HEAD | admin/users/{user}/edit | users.edit | App\Http\Controllers\AdminUsersController@edit | web,admin |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | home | home | App\Http\Controllers\HomeController@index | web,auth |
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,guest |
| | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,guest |
| | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web |
| | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\ResetPasswordController@reset | web,guest |
| | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest |
| | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,guest |
| | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,guest |
| | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,guest |
+--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+--------------+
我在web.php中定义了它,它位于资源(用户)之上,因此应该优先于“用户”资源中的任何其他路由。
我错过了什么
//编辑
查看代码:
<li class="m-nav__item">
<a href="{{route('users.multidel')}}" data-method="delete" class="m-nav__link" id="multi-delete">
<i class="m-nav__link-icon la la-trash-o"></i>
<span class="m-nav__link-text">
Multi-Delete
</span>
</a>
</li>
将其添加到资源后面
Route::group(['middleware'=>'admin'], function(){
Route::get('/admin', 'AdminController@index')->name('admin.home');;
Route::resource('admin/users', 'AdminUsersController');
Route::delete('admin/users/multidel', 'AdminUsersController@multiDel')->name('users.multidel');
});
我将delete路由放回资源路由之上,并在这一过程中明显更改了其他内容,因为现在它不再是404错误,而是500错误
"message": "Too few arguments to function App\\Http\\Controllers\\AdminUsersController::multiDel(), 0 passed and exactly 1 expected",
<>这是一个完全不同的问题,所以我认为原来的查询已经解决了。
我想我改变的是函数定义:
public function multiDel($request)
这是…multiDel(Request$Request)在一个阶段-我把它放回到那个阶段,然后看到404回来了。进一步调查显示:
message": "No query results for model [App\\User].",
这表明$request数据有问题。奇怪的是,它在加载页面时抛出404,但有一个错误。
希望这对将来的人有所帮助…其他管理员/用户资源终结点按预期工作?是的,它们确实工作…
admin/users/multidel
是一种DELETE
方法,只有在输入值为DELETE
的\u method
传递表单请求时才能访问。或者将路由从route::delete()
更改为route::get()
。我将该方法作为delete传递:“type:$this.data('method'),”-与我的单实体销毁方法配合得很好。根据上面的my console.log详细信息,删除前缀表示正在使用正确的方法。
public function multiDel($request)
message": "No query results for model [App\\User].",