Laravel Eloquent 和 API 生成工具 laragen/laragen

https://github.com/laragen/laragen

妈妈再也不用担心我生成模型了
-- Laragen

主要可以生成model和api的controller

顺便还能生成个channel和message

php artisan laragen:model User
php artisan laragen:model --all

php artisan laragen:api User
php artisan laragen:api User --model --actions=index,view

php artisan laragen:channel Sms
php artisan laragen:channel Sms --message=mobile,content
php artisan laragen:message Sms
php artisan laragen:message Sms --attributes=mobie,content

生成的model类似这样

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Notifications\Notifiable;

class Comment extends Model
{
    use SoftDeletes;

    public $fillable = ['user_id', 'content', 'commentable_id', 'commentable_type'];

    public $casts = [];

    public $appends = [];

    public $dates = ['deleted_at'];

    /**
     * Get user
     * @return BelongsTo
     */
    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class);
    }

    /**
     * Get commentable model
     * @return MorphTo
     */
    public function commentable(): MorphTo
    {
        return $this->morphTo();
    }

}

还可以自定义配置

return [
    'model' => [
        'path' => 'Models', // path after `app/`
        'soft_delete' => true, //add deleted_at for $dates
        'traits' => [], // traits for model
        'parent_class' => 'Illuminate\Database\Eloquent\Model',
        'ignore_admin_tables' => true, //ignore admin tables generated by laravel-admin plugin
        'ignore_tables' => ['jobs', 'migrations', 'notifications'], //ignore system tables
        'morph_many' => [ //see https://learnku.com/docs/laravel/5.4/eloquent-relationships# polymorphic-relations
            'Comment' => ['News', 'Post'],
            'Like' => ['News', 'Post'],
        ],

    ],
    'api' => [
        'path' => 'Api', // path after `app/Controllers/`
        'version' => 1, // real path is `app/Controllers/{path}/V{version}`
        'parent_class' => 'App\Http\Controllers\Controller',
    ],
];

安装

  1. Install via composer.

    composer require laragen/laragen --dev
  2. Add LaragenServiceProvider to app/Providers/AppServiceProvider.php.

    if ($this->app->environment('local')) {    
        $this->app->register(\Laragen\Laragen\LaragenServiceProvider::class);
    }
  3. Publish config files.

     php artisan vendor:publish --tag=laragen.config

希望大家多多提issue,我会尽力完善。如果帮到了你,别忘了star哦

本帖已被设为精华帖!
本帖由系统于 6年前 自动加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

厉害啊,还加上了 返回类型!喜欢得不得了!

8年前 评论

@overtrue :laughing: 多谢超神!!!

8年前 评论

希望可以详细一点,路由到控制到访问结果的过程

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!