laravel中的路由冲突

Posted

技术标签:

【中文标题】laravel中的路由冲突【英文标题】:Route conflict in laravel 【发布时间】:2018-04-03 10:35:38 【问题描述】:

我的 laravel 应用中有两条网络中间件路由,如下所示:

Route::get('package/slug','GetPublicController@tourDetail')
->name('single');

Route::get('/trips/category','GetPublicPageController@getBycategory')
->name('getBycategory');

第一条路线效果很好,但第二条路线效果不佳。第二条路线与第一条路线冲突,因为它试图查看第一条路线,导致错误和应用程序崩溃。

方法一:

public function tourDetail($slug)

    $tour = Tour::where('slug', '=', $slug)
        ->first();
    $itineraries = Itinerary::where('tour_id','=', $tour->id)
        ->orderBy('id', 'asc')->get();

    $depature_dates = $tour->datePrice()->FixedDates($tour->id, date('m'),date('Y'))->get();

    return view('public.tour.tour-detail')
        ->withTour($tour)
        ->withItineraries($itineraries)
        ->withDepatures($depature_dates);

第二条路线的方法

public function getByCategory($category)

    $query = Tour::whereHas('category', function($r) use($category) 
        $r->where('tcategories.name','=', $category);
    );
    return view('public.pages.category-list')
    ->withResults($query);

如果有人能提出解决此问题的最佳方法,那将非常有帮助。 谢谢。

【问题讨论】:

路由冲突是什么意思?你有什么错误吗?我从发布的代码中看不到任何冲突 分享你的完整路线,这看起来不错 Trying to get property of non-object 这是我在访问第二条路线时遇到的错误。 视野来自第一条路线。 你尝试的 url 是什么,用控制器添加你的完整路由 【参考方案1】:

您必须在getByCategory 中的查询上调用->get()

【讨论】:

以上是关于laravel中的路由冲突的主要内容,如果未能解决你的问题,请参考以下文章

路由冲突 Laravel

Laravel API:每当我添加 auth:api 中间件时,方法就会发生冲突

Laravel 5.1的多路由文件的配置

工会中的Laravel关系冲突

解决路由名称和文件夹名称之间的冲突

Laravel 中的路由问题