Laravel - 使用控制器
Posted
技术标签:
【中文标题】Laravel - 使用控制器【英文标题】:Laravel - Using Controllers 【发布时间】:2017-06-24 12:56:33 【问题描述】:我使用的是 laravel 5.4,但有一件事我完全无法理解。我使用 make:controller (name) -resource 创建了一个带有 index/show/create/edit/update/destroy 的控制器。我正在制作的应用程序主要是 CRUD 操作。我的问题是:
我的数据库中每个需要 CRUD 操作的实体都必须有一个单独的控制器吗?例如,我有 2 个实体:项目、服务。我必须有 2 个控制器,或者它们可以在同一个控制器上,例如:
public function store_item(Request $request)
**Insert Query**
public function store_service(Request $request)
**Insert Query**
这样做的正确方法是什么?
【问题讨论】:
【参考方案1】:它们可以在同一个控制器中,但是对于 Laravel,为项目、服务或任何 CRUD 操作创建不同的控制器是一种很好的做法。
如果您只想为项目和服务创建一个控制器,您必须创建像 store_item
和 store_service
这样的函数,并且您必须使用每条路由(如 Route::post('items','YourController@store_item');
和类似的服务)调用它们。
但是,如果您为Items
和Services
创建单独的控制器,则不必为每个任务或操作创建路由。您只需在您的路线文件中注册资源丰富的路线,一切顺利!
例如,如果您要为项目和服务创建单独的控制器,则只需在 Routes 文件中编写这两行即可!
Route::resource('items', 'ItemsController');
Route::resource('services', 'ServicesController');
所以,为 CRUD 操作创建控制器是件好事,因为它可以让 Laravel 中的东西变得整洁干净。如果您还有任何疑问,请告诉我!
【讨论】:
是的,这就是我到目前为止所做的。我已经注册了:Route::resource('/items', 'ItemsController'); Route::resource('/services', 'ServicesController');所以它自动创建了我想要的所有路线。所以这是正确的方法吗?因为正如我所见,我将不得不再创建大约 13 个控制器。这样可以吗? 是的,如果您为不同的实体创建不同的控制器,这很容易! 好的,我明白了。 (也许你没有看到它,因为我编辑了我的评论)我将不得不创建几乎 14 - 15 个控制器!你觉得还可以吗?以上是关于Laravel - 使用控制器的主要内容,如果未能解决你的问题,请参考以下文章