laravel中的路线冲突

时间:2018-04-03 10:35:39

标签: php laravel laravel-5.5 laravel-blade

我在下面列出的laravel应用程序中有两条Web中间件路由:

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);
}

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

1 个答案:

答案 0 :(得分:0)

您必须在->get()中的查询上致电getByCategory