我在 laravel 的路线有问题

I am having trouble with my route in laravel

将参数放在路由组前缀中是否不好,因为在某些页面中我会遇到非对象错误。对于大多数页面,它都有效,但似乎不适用于 Route::get('/{categories}', 'AdminVisible\CostIncludeController@index');

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::prefix('cost-include')->group(function() {
                Route::get('/', 'AdminVisible\PackageController@index');
                Route::get('/{categories}', 'AdminVisible\CostIncludeController@index');
            });
        });
    }); 
});

我的 AdminPageController:

    public function index($page)
    {
        $page = Page::where('Pages_Slug_Name',$page)->firstorFail();
        $pages = Page::all();
        return view('admin.pages.page',[
            'page' => $page,
        ],compact('pages'));
    }

我的 CostIncludeController:

    public function index($categories){
        $pages = Page::all();
        $packages = Package::where('slug',$categories)->first();
        return view('admin.pages.costinclude',[
            'packages' => $packages,
        ],compact('pages'));    
    }

带有 {page} 前缀:我认为这个错误意味着该页面不存在但它存在。 如果移除 {page} 前缀:

pagecategories 参数都传递给了你的函数,但是你在 CostIncludeController 中的索引只有 $类别,所以

public function index($categories){

应该是

public function index($page, $categories){

由于 pages 是要传递的第一个参数,您必须确保它也是第一个参数。 index($categories, $page) 也是错误的。