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年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

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

8年前 评论

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

8年前 评论

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

7年前 评论