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中的路由冲突的主要内容,如果未能解决你的问题,请参考以下文章