首页 > 解决方案 > 搜索功能在 Laravel8 中获取 [路由未定义错误]

问题描述

我正在研究搜索功能。我使用 Laravel 框架 8.48.2

我之前在 Laravel5 做过搜索功能,效果很好。这次我在当前的 Laravel8 项目中使用了相同的代码,但出现了这个错误

路线 [products.order] 未定义

你能教我正确的代码吗?

WEB.php

Route::get('products/search', [ProductController::class, 'search']);
Route::post('products/search', [ProductController::class, 'order'])->name('products.search');

控制器

//search page
   public function search()
    {
        $products = Product::get();
        return view('products.search',compact('products'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    }

//result page
    public function order(Request $request)
    {
        $data = $request->all();
        $images = Product::when($data['color'], function ($query, $color) {
            return $query->where('color', $color);
        })->
        when($data['w_m'], function ($query, $w_m) {
            return $query->where('w_m', $w_m);
        })->get();

        return view('products.result', compact('products'));
    }

search.blade.php(仅表单动作部分)

<form action="{{ route('search') }}" class="form-image-upload" method="POST" enctype="multipart/form-data"> 

标签: laravel

解决方案


根据您的发布操作,您实际上是在要求使用未在路线中分配的路线名称“搜索”执行操作,因此它是未定义的。您可以尝试更改如下吗?

Route::get('products/search', [ProductController::class, 'search'])->name('search');

推荐阅读