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哦

本帖已被设为精华帖!
本帖由系统于 5年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 3

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

7年前 评论

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

7年前 评论

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

6年前 评论

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