bensherred/laravel-make-model

一个扩展Laravel make:model命令的包,用于创建新功能所需的所有内容

v1.2.0 2019-12-01 01:24 UTC

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)。有关更多信息,请参阅 许可文件