laravel - Laravel - 如何解决错误 404 路由问题
问题描述
我有一个 Laravel-5.8 项目,如下所示:
控制器:Admin/LeavesController
use App\Models\Leave;
class LeavesController extends Controller
{
public function leave_review()
{
try {
$leaves = Leave::get();
return view('admin.leaves.leave_review')
->with(['leaves', $leaves);
} catch (Exception $exception) {
Session::flash('error', 'Action failed! Please try again');
return back();
}
}
路由/web.php
Route::group(['prefix' => 'admin', 'as' => 'admin.', 'namespace' => 'Admin', 'middleware' => ['auth']], function () {
Route::get('admin/leaves/leave_review', 'LeavesController@leave_review')->name('leaves.leave_review');
});
视图文件夹是这样的:
视图->管理->叶子->leave_review.blade.php
布局/侧边栏:
<li class="nav-item">
<a href="{{ route("admin.leaves.leave_review") }}" class="nav-link {{ request()->is('admin.leaves') || request()->is('admin.leaves/*') ? 'active' : '' }}">
<i class="far fa-circle nav-icon"></i>
<p>
<span>Leave-Review</span>
</p>
</a>
我有我的 php artisan route:list
| 得到|头| admin/admin/leaves/leave_review | admin.leaves.leave_review | 应用\Http\Controllers\Admin\LeavesController@self_review | 网络,认证 |
当我渲染页面时,虽然它已加载,但在路由 admin 中重复了两次:
即管理员/管理员
当我删除管理员前缀并以这种方式使用路由时:
所以从你的路线中删除它,把它改成这个
Route::group(['prefix' => 'admin', 'as' => 'admin.', 'namespace' => 'Admin', 'middleware' => ['auth']], function () {
Route::get('leaves/leave_review', 'LeavesController@leave_review')->name('leaves.leave_review');
});
我得到另一个错误:
找不到错误 404 页面,并且 uri 更改为:
为什么以及如何纠正这个问题?
谢谢
解决方案
因为现在您的路线是admin/leaves/leave_review而不是admin/admin/leaves/leave_review。
如果您经常更改您的路线链接,您可以考虑在您的视图中使用路线名称作为route('leaves.leave_review')。这样,如果名称未更改,您将始终获得与该名称关联的路线。
推荐阅读
- python - 为python VS Code导入mysql.connector时出现ModuleNotFoundError
- google-analytics - 为什么减少新用户显示绿色积极谷歌分析
- reactjs - Jest Enzyme React Native react-native-gesture-handler 问题
- java - 如何使用序列号在 Firebase 中存储数据?
- google-sheets - 按单个列中的一个或多个类别过滤一条记录
- javascript - 如何使用 axios 从 json 获取数据?(反应)
- php - 无法正确处理 ARC2 中的“PREFIX”
- json-c - 从 json-c json_object 中提取键(不是值)
- c# - 仅发出唯一值 - 或者自上次发出以来已经过去了一段时间
- ionic3 - 显示除登录页面外的选项卡菜单?