bensherred / laravel-make-model
一个扩展Laravel make:model命令的包,用于创建新功能所需的所有内容
This package is auto-updated.
Last update: 2024-08-29 05:07:03 UTC
README
此包扩展了Laravel make:controller和make:model命令,可以在一条命令中创建策略、请求和视图。您指定的参数也将影响生成的控制器。安装此包还会创建make:view命令。
安装
您可以通过composer安装此包
composer require bensherred/laravel-make-model
服务提供器将自动注册,或者您可以在您的config/app.php
文件中手动添加服务提供器
'providers' => [ // ... BenSherred\MakeModel\MakeModelServiceProvider::class, ];
用法
此包有两个部分,即Laravel make:model命令和Laravel make:controller命令的扩展。
make:model
如果您运行以下命令,您会注意到一个额外的选项,并且--all参数已更新。
首先,运行以下命令不仅会生成迁移、工厂和资源控制器,还会创建策略、请求类和视图。
php artisan make:model Post --all
为此示例将创建的额外类/文件包括
- app/Http/Requests/Post/StorePostRequest.php
- app/Http/Requests/Post/UpdatePostRequest.php
- app/Policies/PostPolicy.php
- resources/views/post/create.blade.php
- resources/views/post/edit.blade.php
- resources/views/post/index.blade.php
- resources/views/post/show.blade.php
生成的控制器将自动返回视图,包含请求和策略。
另一个选项是仅创建模型的策略。这可以通过运行以下命令完成
php artisan make:model Post --policy
make:controller
make:controller的扩展与make:model命令非常相似,但有一些额外的选项。
创建策略
要创建与控制器一起的策略,可以添加--policy选项。只有在指定了控制器的模型时,此选项才会自动添加到控制器中。
php artisan make:controller PostController --model=Post --policy
运行上述命令将创建资源控制器并使用Post模型,同时创建PostPolicy并在控制器中包含authorizeResource选项。
如果您已经有一个策略或想要为策略指定自定义名称,可以运行以下命令
php artisan make:controller PostController --model=Post --policy=PostPolicy
如果您创建资源控制器,策略将是create,但不会自动将authorizeResource选项添加到控制器中。
创建请求
如果您希望为控制器创建自定义请求类,可以在命令中添加--requests选项。这将创建一个{Model}StoreRequest和{Model}UpdateRequest类在app/Http/Requests/{Model}/。
此选项适用于模型控制器和资源控制器。如果您通过指定--model=选项创建模型控制器,它将使用模型名称创建请求文件夹。但是,如果您创建资源控制器,它将移除控制器名称中的Controller单词并使用它。
php artisan make:controller PostController --resource --requests
因此,运行以下命令将在app/Http/Requests/Post下创建一个StorePostRequest和UpdatePostRequest类。
创建视图
添加到make:controller命令的另一个选项是自动创建视图。您可以通过指定--views选项来实现。如果您正在创建PostController并添加此选项,以下视图将在名为post的文件夹下创建
- create.blade.php
- edit.blade.php
- index.blade.php
- show.blade.php
与--requests选项类似,如果指定了模型,它将使用模型名称作为文件夹名称。但是,如果创建资源控制器,它将基于控制器名称确定文件夹名称。
如果您创建了一个模型或资源控制器,视图也将自动添加到控制器中。如果生成了模型控制器,它也会将模型传递给控制器。
请注意,如果您指定了 --api 选项,此选项将被忽略。
使用多个选项
如果您想使用多个选项,可以将它们依次链接起来。
例如,运行以下命令将创建一个模型控制器,以及策略和2个请求类。
php artisan make:controller PostController --model=Post --policy --requests
或者,您也可以同时使用这三个选项。
php artisan make:controller PostController --model=Post --policy --requests --views
make:view
此包还提供了一项 make:view 命令。
运行以下命令将在 views 目录下的 blog 文件夹中创建一个 index.blade.php 文件。
php artisan make:view blog/index
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。