是否可以组合说新闻和内容的路线?两者都是不同的型号,并有自己的控制器。
Link 1 = /news-item/ (news controller & model)
Link 2 = /about-us/ (content controller & model)
正如你在链接1和链接2中看到的那样,我希望两个模型都是单一的,没有文件夹进行处理。
请参阅下面我认为可行的示例代码,但不会:
Route::get( '/{page_url}/', 'NewsController@show' );
Route::get( '/{page_url}/', 'ContentController@show' );
我试过这个,但它只获得了2个控制器中的一个。我可以看到明显的冲突。
是否有另一种方法可以在一个以上的控制器上实现单个url slug?
答案 0 :(得分:0)
我看到的唯一方法是定义一条路线:
Route::get( '/{page_url}/', 'SlugController@show');
然后在控制器方法中,检查新闻表或内容表中是否存在slug,然后显示相关内容。如果未找到任何内容,请显示错误。
我看到的另一种方式是使用前面的路径,
Route::get( 'news/{page_url}/', 'NewsController@show');
Route::get( 'content/{page_url}/', 'ContentController@show');
答案 1 :(得分:0)
嗯,这是一种非常糟糕的做法,因为请求 - 响应唯一性之间的范式已经丢失,在未来优化的连续性中,您将度过一段美好的时光。如果网址没有区别,你就没办法实现你想要的东西:
Route::get( '/foo', 'NewsController@show' );
Route::get( '/foo', 'ContentController@show' );
正如您可以看到明显的冲突,您如何在请求中注意到它们之间的差异?这不可能。 Lavaral将使用相同的值(url)覆盖每个路径“key”