为什么在laravel项目中显示“Route [searchbybrand] not defined.”?

z31licg0  于 2023-02-05  发布在  其他
关注(0)|答案(1)|浏览(111)

我正在用laravel开发一个电子商务网络应用程序,我有一个叫做"按品牌购物"的部分,上面有品牌的图片,当我点击图片时,我希望它能显示该品牌的产品。
这是我的代码中的blade部分,我在这里调用路由:

<div class="brand-slides owl-carousel owl-theme">
                    <div class="brand-item">
                        <a href="{{route('searchbybrand')}}"><img src="assets/img/brand/shopbybrand1.jpg" alt="image"></a>
                    </div>
                    
                </div>

这是我的控制器:

public function  searchVendor()
    {
        $searchproduct="Fanola";

        $product=product::Where('vendor','LIKE',"%$searchproduct%")->get();

        return view('home.userpage',compact('product'));
    }

目前它只是一个简单的代码,将只与"fanola"品牌。我这样做只是为了测试它是否工作。
这是我在我的网站上的路线. php:

Route::get('/searchbybrand', [HomeController::class, 'searchVendor']);

当我为它服务时,它显示的错误是"Route [searchbybrand] not defined"
我试过清除路由缓存,但还是不起作用。我问过chat gpt这个问题,它给了我不同的想法,比如像这样定义路由:

Route::get('search-by-brand', 'HomeController@searchVendor')->name('searchbybrand');

当我这样做时,它显示了一个不同的错误:"目标类[HomeController]不存在。"
我也尝试了composer dump-autoload、php artisan config:clear和php artisan cache:clear,但是没有一个起作用。

kzmpq1sx

kzmpq1sx1#

这是因为您的路径没有名称,您可以按如下方式对其进行修改

Route::get('/searchbybrand', [HomeController::class, 'searchVendor'])->name('searchbybrand');

或者在刀片中使用url代替route

<div class="brand-slides owl-carousel owl-theme">
                    <div class="brand-item">
                        <a href="{{url('searchbybrand')}}"><img src="assets/img/brand/shopbybrand1.jpg" alt="image"></a>
                    </div>
                    
                </div>

对于第二个问题Target class [HomeController] does not exist.,将其添加到web.php的顶部

use App\Http\Controllers\HomeController;

也在末端运行

php artisan optimize

相关问题