gpt4 book ai didi

laravel - 资源 Controller - BulkDelete

转载 作者:行者123 更新时间:2023-12-04 03:33:20 30 4
gpt4 key购买 nike

最近看了"Cruddy by Design" - Laracon US 2017现在我正试图摆脱我的 Controller 中的任何额外方法(所以我只有 index、create、store、show、edit、updatedestroy)

Adam Wathan 谈到创建新的 Controller 来放入这些方法,例如:

PodcastsController@publish

会变成

PublishedPodcastsController@store

所以现在我的应用程序有这些路由:

Route::delete('tags', [TagsController::class, 'bulk_delete']);
Route::resource('tags', TagsController::class);

而且我不确定如何重构 bulk_delete 方法。

我想到的一个想法是将 TagsController Controller 重命名为 TagController(单数),创建一个新的 TagsController(复数),并将 bulk_delete 方法移到那里,这样我就有了这些路线:

Route::resource('tag', TagController::class); // index, create, store, show, edit, update, destroy
Route::resource('tags', TagsController::class)->only([
'delete' // delete => bulk_delete
]);

但我不确定我是否喜欢它。

有没有其他方法可以在 ResourceController 中使用 bulk_delete 方法?

最佳答案

老实说,在我看来,使用像 TagsController 这样的东西是一个很大的否定,因为 Laravel 在他自己的逻辑中使用复数或不使用复数。

您可以将 Request 添加到 destroy 方法并检查请求值(如项目),但您仍然必须处理 Object,因为默认情况下它会尝试创建一个对象。

你可以做的是发布一个删除,而不是/{idofdeleteobject} 传递一个像/bulk 这样的字符串,如果标签为空,因为它不是请求中对象数组的 ID 检查,

public function(Tag $tag, Request $request) {
if(!is_null($tag)) {
return $tag->delete();
})

if($request->has('bulk') {
// logic for deleting all bulk
})
}

关于laravel - 资源 Controller - BulkDelete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67463066/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com