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',
],
];
安装#
-
Install via composer.
composer require laragen/laragen --dev
-
Add
LaragenServiceProvider
toapp/Providers/AppServiceProvider.php
.if ($this->app->environment('local')) { $this->app->register(\Laragen\Laragen\LaragenServiceProvider::class); }
-
Publish config files.
php artisan vendor:publish --tag=laragen.config
希望大家多多提 issue,我会尽力完善。如果帮到了你,别忘了 star 哦#
本帖已被设为精华帖!
本帖由系统于 6年前 自动加精
推荐文章: