我有关于MVC和控制器的设计问题
我有这两条路线
Route::get('/foo/{id}', FooController@show)
Route::get('/bar/{id}', BarController@show)
但是知道,我想为此索引添加另一条路径
Route::get('/', ???)
在这条路线中,我需要一些有关Foo和Bar模型的信息。
问题是,我应该为该路线创建一个新的控制器吗?比如MainController
?
答案 0 :(得分:1)
通常,控制器用于响应与特定资源(模型)关联的请求。因此,根据您的具体示例,适用两种不同的方案。
Foo
路线)需要Bar
和/
模型:在这种情况下,专用控制器将是一件非常好的事情。此外,使用视图模型将是有益的。目标网页上不需要有关特定于应用程序的模型的信息:您仍然可以使用专用控制器类来返回视图,而另一种可能是使用lambda函数:
Route::get('/', function () {
return view('landing');
});
答案 1 :(得分:0)
每个资源类型都有一个控制器,这对我来说总是最好的。 你有FooController的资源'foo',和BarController的'bar'。因此,对于根上下文资源,您需要一个根控制器。
这有助于分离关注点并使代码模块化。