Laravel中是否存在Shallow Resource Controller?如何生成指定操作控制器
Laravel 生成指定操作的控制器及浅资源控制器说明
首先明确:Laravel官方并没有「shallow resource controller」这个专门的控制器类型,你可能是混淆了嵌套路由的shallow选项——这个选项是用来优化嵌套路由的,比如让嵌套资源的update/destroy等操作不再依赖父资源ID,和生成特定方法的控制器完全是两回事。
要生成仅包含store、destroy、update这三个操作的控制器,直接用Artisan命令的--only参数就能实现:
php artisan make:controller YourModelController --model=YourModel --only=store,destroy,update
把命令里的YourModel替换成你实际的模型名称(比如Post、User),--model参数会自动帮你注入模型依赖,生成的控制器只会包含你指定的三个方法,完全不会生成视图相关的代码。
如果需要手动创建控制器,也可以直接写如下结构:
namespace App\Http\Controllers; use App\Models\YourModel; use Illuminate\Http\Request; class YourModelController extends Controller { public function store(Request $request) { // 编写存储逻辑 } public function update(Request $request, YourModel $model) { // 编写更新逻辑 } public function destroy(YourModel $model) { // 编写删除逻辑 } }
路由配置上,要是用资源路由的话,同样可以用only参数限定只注册这三个路由:
Route::resource('your-models', YourModelController::class)->only(['store', 'destroy', 'update']);
内容的提问来源于stack exchange,提问作者Bufer
相关产品推荐
相关产品推荐

