【发布时间】:2020-08-27 16:02:10
【问题描述】:
我有一个 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');
});
视图文件夹是这样的:
views->admin->leaves->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 重复了两次:
即admin/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 更改为:
为什么以及如何纠正这个问题?
谢谢
【问题讨论】:
-
您已经发布了如何生成用于消费的路线(routes.web),但您没有展示如何创建到路线的实际链接(可能是刀片文件)。您的第二个路由组是正确的,您不想要重复的 admin/admin/ (我想)。修复生成链接本身的任何内容,使其不生成 /hrm/admin/admin ,你会很生气
-
在您看来,请使用
route('leaves.leave_review')而不是 admin.leaves.leave_review。你应该在改变路线后运行php artisan route:clear。 -
@GiovanniS - 我从侧边栏渲染了视图。这显示在代码中
标签: laravel