控制器设计模式
Controllers design pattern
我有一个关于 MVC 和控制器的设计问题
我有这两条路线
Route::get('/foo/{id}', FooController@show)
Route::get('/bar/{id}', BarController@show)
但是知道,我想像这样为索引添加另一条路线
Route::get('/', ???)
在这条路线中,我需要一些关于 Foo 和 Bar 模型的信息。
问题是,我应该为该路线创建一个新控制器吗?喜欢 MainController
?
对我来说,为每种资源类型配备一个控制器一直是我的最佳选择。
FooController 有资源 'foo',BarController 有 'bar'。所以对于根上下文资源,你应该有一个根控制器。
这有助于分离关注点并使您的代码模块化。
一般来说,控制器旨在响应与特定资源(模型)关联的请求。因此,根据您的具体示例,适用两种不同的场景。
- 着陆页上需要
Foo
和 Bar
模型(/
路线):在这种情况下,专用控制器将是一件非常好的事情。此外,使用视图模型将是有益的。
着陆页上不需要有关特定应用程序模型的信息:您仍然可以使用专用控制器 class 来 return 您的视图,而另一种可能性是lambda 函数的使用:
Route::get('/', function () {
return view('landing');
});
我有一个关于 MVC 和控制器的设计问题
我有这两条路线
Route::get('/foo/{id}', FooController@show)
Route::get('/bar/{id}', BarController@show)
但是知道,我想像这样为索引添加另一条路线
Route::get('/', ???)
在这条路线中,我需要一些关于 Foo 和 Bar 模型的信息。
问题是,我应该为该路线创建一个新控制器吗?喜欢 MainController
?
对我来说,为每种资源类型配备一个控制器一直是我的最佳选择。 FooController 有资源 'foo',BarController 有 'bar'。所以对于根上下文资源,你应该有一个根控制器。
这有助于分离关注点并使您的代码模块化。
一般来说,控制器旨在响应与特定资源(模型)关联的请求。因此,根据您的具体示例,适用两种不同的场景。
- 着陆页上需要
Foo
和Bar
模型(/
路线):在这种情况下,专用控制器将是一件非常好的事情。此外,使用视图模型将是有益的。 着陆页上不需要有关特定应用程序模型的信息:您仍然可以使用专用控制器 class 来 return 您的视图,而另一种可能性是lambda 函数的使用:
Route::get('/', function () { return view('landing'); });