php - 路由错误由于我的路由中的组前缀
问题描述
在我的路由中,如果我删除 {page} 前缀,它完全可以正常工作,但是当我输入它时会出现错误。对于其他它工作正常,但它不适用于这条路线: Route::get('/{categories}', 'AdminVisible\CostIncludeController@index'); 我的管理页面控制器:
public function index($page)
{
$page = Page::where('Pages_Slug_Name',$page)->firstorFail();
$pages = Page::all();
return view('admin.pages.page',[
'page' => $page,
],compact('pages'));
}
我的成本包含控制器:
public function index($categories){
$pages = Page::all();
$packages = Package::where('slug',$categories)->first();
return view('admin.pages.costinclude',[
'packages' => $packages,
],compact('pages'));
}
我的路线:
Auth::routes(['register' => false,'login' => false]);
Route::prefix('admin')->group(function() {
Route::get('/')->name('login')->uses('Auth\LoginController@showLoginForm');
Route::post('/')->name('login')->uses('Auth\LoginController@login');
Route::get('/dashboard', 'AdminVisible\HomeController@index')->name('admin.dashboard');
Route::prefix('pages')->group(function() {
Route::get('/','AdminVisible\AdminPageController@pages')->name('pages');
Route::prefix('{page}')->group(function() {
Route::get('/','AdminVisible\AdminPageController@index')->name('page');
Route::get('/banner', 'AdminVisible\BannerController@index');
Route::get('/why-with-us', 'AdminVisible\WhyWithUsController@index');
Route::get('/testimonials', 'AdminVisible\TestimonialsController@index');
Route::get('/about', 'AdminVisible\AboutController@index');
Route::get('/about-why-with-us', 'AdminVisible\AboutWhyWithUsController@index');
Route::get('/general-information', 'AdminVisible\PackageController@index');
Route::get('/package-program', 'AdminVisible\PackageController@index');
Route::get('/cost-exclude', 'AdminVisible\PackageController@index');
Route::prefix('cost-include')->group(function() {
Route::get('/', 'AdminVisible\PackageController@index');
Route::get('/{categories}', 'AdminVisible\CostIncludeController@index');
});
});
});
});
我的 Blade.php 文件:
@extends('layouts.app')
@section('style')
<link href="{{ asset('css/Admin/sql-data-viewer.css') }}" rel="stylesheet">
<style></style>
@endsection
@section('content')
<section class="data-viewer">
<div class="d-flex justify-content-between">
<h3>Select Package to change</h3>
<a href="#"><button type="button" class="btn add-data text-white rounded-pill">Add <i class="fas fa-plus"></i></button></a>
</div>
<table>
<thead>
<tr class="data-head">
<td scope="col" style="width: 5%"><input type="checkbox"></td>
<th scope="col" style="width: 8.7%">Id</th>
<td scope="col">Includes</td>
</tr>
</thead>
<tbody>
@foreach ($packages->costIncludes as $include)
<tr class="data">
<td scope="col" style="width: 6.5%"><input type="checkbox"></td>
<th scope="col" style="width: 10%;"><a href="">{{$include->id}}</a></th>
<td scope="col" class="text-justify" style="width:696px">{{Str::limit($include->Cost_Include,100)}}</td>
</tr>
@endforeach
</tbody>
</table>
</section>
@endsection
带有 {page} 前缀:
没有 {page} 前缀:
解决方案
在您的 CostIncludeController@index 中,添加新变量。路由器希望您处理两个变量。
public function index($page, $categories){
$pages = Page::all();
$packages = Package::where('slug',$categories)->first();
return view('admin.pages.costinclude',[
'packages' => $packages,
],compact('pages'));
}
dd($categories)
在这两种情况下,您都可以通过在控制器内部执行函数来确认错误的原因。
推荐阅读
- python - Pygame ValueError:无效的rectstyle对象
- dask - Dask - 删除重复索引 MemoryError
- python - 使用 ElementTree 解析 XML 中的子子项
- .net - Winforms 文档查看器组件
- c# - 如何强制方法参数来自特定参数类?
- c# - C# 双击 DataGridView 与滚动条问题打开重复记录
- web3swift - 无法导入 Web3。在 Xcode 项目中快速
- javascript - java脚本点击函数意外输出
- javascript - jQuery - 在不同的 div 级别中获取最接近的元素
- jquery - 花式树根尚未渲染