axn/laravel-crud-generator

此包已被废弃,不再维护。没有建议的替代包。

在 Laravel 中生成 CRUD

此包的官方仓库似乎已消失,因此该包已被冻结。

3.1.0 2021-07-21 11:57 UTC

README

此包允许使用 Laravel 框架生成 CRUD 部分的文件。

安装

使用 Composer 包含此包

composer require axn/laravel-crud-generator

如果需要,请通过以下命令发布包的模板(占位符):

// stubs
php artisan vendor:publish --tag=crud-generator.stubs

模板发布在 resources/stubs/vendor/crud-generator/

在此处进行所需的修改。

使用

运行以下命令:

php artisan crud:generate <section> <model> [--stubs] [--langdir] [--viewsdir] [--breadcrumbs|-b]

参数

  • section : 要创建的节点的名称。控制器、路由和请求的目录/名称/命名空间由该名称确定。

  • model : 要注入控制器的模型类名称。该类必须存在,否则会引发错误。**注意:请务必将类名用引号括起来:否则反斜杠可能会导致问题**。

选项

  • --stubs : 允许指定用于生成控制器、路由文件和请求的模板组。默认为 'default'。

  • --langdir : 允许指定用于生成翻译文件的子目录。此子目录被添加到法语(resources/lang/fr)翻译的基本路径和节点的目录结构之间。默认为 ''(空)。

  • --viewsdir : 允许指定用于生成视图文件的子目录。此子目录被添加到视图(resources/views/)的基本路径和节点的目录结构之间。默认为 ''(空)。

  • --breadcrumbs (或 -b) : 如果指定此选项,则将面包屑连接到 app/Http/breadcrumbs.php 文件的末尾

此外,还会提出问题以生成法语文本

  • 节点的标题,单数形式。例如:“订单状态”。
  • 节点的标题,复数形式。例如:“订单状态”。
  • 标题是阴性的吗?y = 是;n = 否。默认:n。

具体使用示例

php artisan crud:generate params.commande-statuts "App\Models\CommandeStatut" --viewsdir=modules

...生成以下文件

app/
    Http/
        Controllers/
            Params/
                CommandeStatutsController.php
        Requests/
            Params/
                CommandeStatuts/
                    StoreRequest.php
                    UpdateRequest.php
                    UpdateContentRequest.php
        Listings/
            CommandeStatutsListing.php
resources/
    lang/
        fr/
            params/
                commande-statuts.php
    views/
        modules/ <= viewsdir
            params/
                commandes-statuts/
                    index.blade.php
                    panel-list.blade.php
                    panel-create.blade.php
                    panel-edit.blade.php
                    form.blade.php
routes/
    params/
        commande-statuts.php

请注意,不要忘记包含路由文件

// app/Http/routes.php

require __DIR__.'/routes/params/commande-statuts.php';

// Ou en incluant automatiquement tous les fichiers présents dans le dossier "routes" :
foreach (File::allFiles(__DIR__.'/routes') as $file) {
    require $file->getRealPath();
}

控制器中的选项

生成的文件可以根据需要进行修改,但在控制器中($options 属性)提供了一些选项,可以快速自定义节点,而无需接触代码

  • creatable : 用于在列表旁边显示创建表单并允许创建。
  • editable : 用于在列表中显示修改按钮(它将引导到表单)并允许修改。
  • contentEditable : 用于允许直接从列表中动态编辑记录的标签。
  • activatable : 用于在列表中显示启用/禁用按钮并允许启用/禁用。
  • 可销毁的 : 在列表中显示删除按钮并允许删除。

模板组

如命令选项中所述,可以创建不同的模板组,从而选择用于生成节区的模板。默认情况下(如果命令的 --stubs 选项未指定),则使用由包提供的“默认”组。模板组必须放在包的模板发布目录中。

示例

resources/
    stubs/
        vendor/
            crud-generator/
                default/ <= Groupe par défaut
                params/  <= Groupe ajouté

如果一个模板在一个组中不存在,那么对应的文件将不会生成。如果只想为某个组生成控制器,这个特性很有用。