ะกะพะทะดะฐะฝะธะต ะฟัะพะตะบัะพะฒ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ัั ะตะผ ะดะปั MoonShine.
- ะะฟะธัะฐะฝะธะต
- ะฃััะฐะฝะพะฒะบะฐ
- ะะพะฝัะธะณััะฐัะธั
- ะัััััะน ััะฐัั
- ะะตัะพะดั ะณะตะฝะตัะฐัะธะธ ะบะพะดะฐ
- ะะฐััะพะฒัะน ะธะผะฟะพัั ัะฐะฑะปะธั
ะะฟะธัะฐะฝะธะต
ะญัะพั ะฟะฐะบะตั ะฟะพะทะฒะพะปัะตั ัะพะทะดะฐะฒะฐัั Resource, Model ะธ Migration ัะพ ะฒัะตะผะธ ะฟะพะปัะผะธ, ะธัะฟะพะปัะทัั ะผะตัะพะดั ะณะตะฝะตัะฐัะธะธ ะธะท:
- SQL-ัะฐะฑะปะธัั,
- JSON-ัั ะตะผั,
- ะะตะฝะตัะฐัะธั ะบะพะดะฐ ะดะปั ะฝะพะฒะพะณะพ ัะตััััะฐ ะธะท ะบะพะฝัะพะปะธ.
ะะฐะบะตั ะณะตะฝะตัะธััะตั ัะปะตะดัััะธะต ัะฐะนะปั:
ะฃััะฐะฝะพะฒะบะฐ
composer require dev-lnk/moonshine-builder --dev
composer require dev-lnk/moonshine-builder --dev
ะะพะฝัะธะณััะฐัะธั
ะะฟัะฑะปะธะบัะนัะต ัะฐะนะป ะบะพะฝัะธะณััะฐัะธะธ ะฟะฐะบะตัะฐ:
php artisan vendor:publish --tag=moonshine-builder
php artisan vendor:publish --tag=moonshine-builder
ะ ัะฐะนะปะต ะบะพะฝัะธะณััะฐัะธะธ ัะบะฐะถะธัะต ะฟััั ะบ ะฒะฐัะธะผ JSON-ัั ะตะผะฐะผ:
return ['builds_dir' => base_path('builds')];
return ['builds_dir' => base_path('builds')];
ะัััััะน ััะฐัั
ะัะฟะพะปะฝะธัะต ะบะพะผะฐะฝะดั:
php artisan moonshine:build
php artisan moonshine:build
ะะฐะผ ะฑัะดัั ะฟัะตะดะปะพะถะตะฝั ะฒะฐัะธะฐะฝัั ะฒัะฑะพัะฐ ะผะตัะพะดะพะฒ ะณะตะฝะตัะฐัะธะธ ะบะพะดะฐ, ะฝะฐะฟัะธะผะตั:
โ Type โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ table โโ › โ json โโ โ console โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Type โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ table โโ › โ json โโ โ console โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ะัะธ ะฒัะฑะพัะต ะฒะฐัะธะฐะฝัะฐ json
:
โ File โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ › โ category.json โโ โ project.json โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ File โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ › โ category.json โโ โ project.json โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
app/Models/Category.php was created successfully!app/MoonShine/Resources/CategoryResource.php was created successfully!database/migrations/2024_05_27_140239_create_categories.php was created successfully!WARN Don't forget to register new resources in the provider method:new CategoryResource(),...or in the menu method:MenuItem::make(static fn() => 'CategoryResource',new CategoryResourceResource()),INFO All done.
app/Models/Category.php was created successfully!app/MoonShine/Resources/CategoryResource.php was created successfully!database/migrations/2024_05_27_140239_create_categories.php was created successfully!WARN Don't forget to register new resources in the provider method:new CategoryResource(),...or in the menu method:MenuItem::make(static fn() => 'CategoryResource',new CategoryResourceResource()),INFO All done.
ะะพะผะฐะฝะดะฐ ะธะผะตะตั ัะปะตะดััััั ัะธะณะฝะฐัััั moonshine:build {target?} {--type=}
, ะณะดะต:
target
- ัััะฝะพััั, ะฟะพ ะบะพัะพัะพะน ะฑัะดะตั ะฒัะฟะพะปะฝะตะฝะฐ ะณะตะฝะตัะฐัะธั,type
- ัะธะฟ ะธะปะธ ะผะตัะพะด ะณะตะฝะตัะฐัะธะธ, ะดะพัััะฟะฝะพtable
,json
,console
.
ะะตัะพะดั ะณะตะฝะตัะฐัะธะธ ะบะพะดะฐ
ะกะพะทะดะฐะฝะธะต ะธะท SQL-ัะฐะฑะปะธัั
ะั ะผะพะถะตัะต ัะพะทะดะฐัั ัะตัััั, ะธัะฟะพะปัะทัั ัั
ะตะผั ัะฐะฑะปะธัั. ะะปั ััะพะณะพ ะฒัะฟะพะปะฝะธัะต ะบะพะผะฐะฝะดั php artisan moonshine:build
ะธ ะฒัะฑะตัะธัะต ะฒะฐัะธะฐะฝั table
:
โ Type โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ › โ table โโ โ json โโ โ console โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Type โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ › โ table โโ โ json โโ โ console โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ะัะฑะตัะธัะต ะฝะตะพะฑั ะพะดะธะผัั ัะฐะฑะปะธัั:
โ Table โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ password_reset_tokens โ โโ โ sessions โ โโ โ statuses โ โโ โ tasks โ โโ › โ users โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Table โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ password_reset_tokens โ โโ โ sessions โ โโ โ statuses โ โโ โ tasks โ โโ › โ users โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ะั ะผะพะถะตัะต ััะฐะทั ัะบะฐะทะฐัั ะฝะฐะทะฒะฐะฝะธะต ัะฐะฑะปะธัั ะธ ัะธะฟ ะณะตะฝะตัะฐัะธะธ. ะัะธะผะตั:
php artisan moonshine:build users --type=table
php artisan moonshine:build users --type=table
ะ ะตะทัะปััะฐั:
public function indexFields(): iterable{return [ID::make('id'),Text::make('name', 'name'),Text::make('email', 'email'),Date::make('email_verified_at', 'email_verified_at'),Text::make('password', 'password'),Text::make('remember_token', 'remember_token'),];}public function formFields(): iterable{return [Box::make([...$this->indexFields()])];}public function detailFields(): iterable{return [...$this->indexFields()];}
public function indexFields(): iterable{return [ID::make('id'),Text::make('name', 'name'),Text::make('email', 'email'),Date::make('email_verified_at', 'email_verified_at'),Text::make('password', 'password'),Text::make('remember_token', 'remember_token'),];}public function formFields(): iterable{return [Box::make([...$this->indexFields()])];}public function detailFields(): iterable{return [...$this->indexFields()];}
ะกะพะทะดะฐะฝะธะต ะธะท JSON-ัั ะตะผั
ะกัััะบัััะฐ JSON. ะ ะดะธัะตะบัะพัะธะธ builds_dir
ัะพะทะดะฐะนัะต ัะฐะนะป ัั
ะตะผั, ะฝะฐะฟัะธะผะตั, category.json
:
{"resources": [{"name": "Category","fields": [{"column": "id","type": "id","methods": ["sortable"]},{"column": "name","type": "string","name": "Name"}]}]}
{"resources": [{"name": "Category","fields": [{"column": "id","type": "id","methods": ["sortable"]},{"column": "name","type": "string","name": "Name"}]}]}
ะงัะพะฑั ัะณะตะฝะตัะธัะพะฒะฐัั ัะฐะนะปั ะฟัะพะตะบัะฐ, ะฒัะฟะพะปะฝะธัะต ะบะพะผะฐะฝะดั:
php artisan moonshine:build category.json
php artisan moonshine:build category.json
ะะพะปะตะต ะฟะพะดัะพะฑะฝัะน ะฟัะธะผะตั ั ะผะฝะพะถะตััะฒะตะฝะฝัะผะธ ัะตััััะฐะผะธ ะธ ัะฒัะทัะผะธ ะผะพะถะฝะพ ะฝะฐะนัะธ ะทะดะตัั.
Timestamps
ะั ะผะพะถะตัะต ัะบะฐะทะฐัั ัะปะฐะณ timestamps: true
:
{"resources": [{"name": "Category","timestamps": true,"fields": []}]}
{"resources": [{"name": "Category","timestamps": true,"fields": []}]}
ะะพะปั created_at
ะธ updated_at
ะฑัะดัั ะดะพะฑะฐะฒะปะตะฝั ะฒ ัะณะตะฝะตัะธัะพะฒะฐะฝะฝัะน ะบะพะด. ะัะปะธ ะฒั ัะบะฐะถะตัะต ะฟะพะปั created_at
ะธ updated_at
ะฒัััะฝัั, ัะปะฐะณ timestamps
ะฐะฒัะพะผะฐัะธัะตัะบะธ ัััะฐะฝะพะฒะธััั ะฒ true
.
Soft delete
ะ ะฐะฑะพัะฐะตั ะฐะฝะฐะปะพะณะธัะฝะพ ัะปะฐะณั timestamps
ะธ ะฟะพะปั deleted_at
.
ะคะปะฐะณะธ ะดะปั ะณะตะฝะตัะฐัะธะธ ัะฐะนะปะพะฒ
ะก ะฟะพะผะพััั ัะปะฐะณะพะฒ withResource
, withModel
, withMigration
ะฒั ะผะพะถะตัะต ะฝะฐัััะพะธัั, ััะพ ะธะผะตะฝะฝะพ ััะตะฑัะตััั ัะณะตะฝะตัะธัะพะฒะฐัั ะดะปั ะฒะฐัะตะณะพ ัะตััััะฐ:
{"name": "ItemPropertyPivot","withResource": false,"withModel": false}
{"name": "ItemPropertyPivot","withResource": false,"withModel": false}
ะะตะฝะตัะฐัะธั ะธะท ะบะพะฝัะพะปะธ
ะัะฟะพะปะฝะธัะต ะบะพะผะฐะฝะดั php artisan moonshine:build
ะธ ะฒัะฑะตัะธัะต ะฒะฐัะธะฐะฝั console
, ะปะธะฑะพ ะฒัะฟะพะปะฝะธัะต ะบะพะผะฐะฝะดั moonshine:build-resource
. ะะฐะปะตะต ะฒะฐะผ ะฝะตะพะฑั
ะพะดะธะผะพ ะทะฐะดะฐัั ะธะผั ัะตััััะฐ ะธ ะพะฟะธัะฐัั ะฒัะต ะฟะพะปั:
โ Type โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ console โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Resource name: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Status โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Column: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ id โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Column name: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Id โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Column type: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ id โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Add more fields? โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Yes / โ No โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Type โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ console โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Resource name: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Status โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Column: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ id โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Column name: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Id โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Column type: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ id โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Add more fields? โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Yes / โ No โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ะั ะผะพะถะตัะต ััะฐะทั ัะพะทะดะฐัั ัะตัััั ั ะฟะพะปัะผะธ, ะฒัะฟะพะปะฝะธะฒ ัะปะตะดััััั ะบะพะผะฐะฝะดั:
php artisan moonshine:build-resource Status id:Id:id name:Name:string
php artisan moonshine:build-resource Status id:Id:id name:Name:string
ะ ะตะทัะปััะฐั:
public function indexFields(): iterable{return [ID::make('id'),Text::make('Name', 'name'),];}
public function indexFields(): iterable{return [ID::make('id'),Text::make('Name', 'name'),];}
ะกะธะณะฝะฐัััะฐ ะบะพะผะฐะฝะดั moonshine:build-resource {entity?} {fields?*}
, ะณะดะต:
- entity - ะฝะฐะทะฒะฐะฝะธะต ัะตััััะฐ,
- fields - ะฟะพะปั ะดะปั ะณะตะฝะตัะฐัะธะธ ะฒะธะดะฐ name:Name:string ะธะปะธ {column}:{columnName}:{type}
ะัะต ะดะพัััะฟะฝัะต {type} ะผะพะถะฝะพ ะฟะพัะผะพััะตัั, ะฒัะฟะพะปะฝะธะฒ ะบะพะผะฐะฝะดั php artisan moonshine:build-types
ะะฐััะพะฒัะน ะธะผะฟะพัั ัะฐะฑะปะธั
ะัะปะธ ั ะฒะฐั ัะถะต ะตััั ะฟัะพะตะบั ั ัะพะฑััะฒะตะฝะฝะพะน ะฑะฐะทะพะน ะดะฐะฝะฝัั ะธ ะฒั ะฝะต ั ะพัะธัะต ะณะตะฝะตัะธัะพะฒะฐัั ัะตััััั ะฟะพ ะพะดะฝะพะผั, ะธัะฟะพะปัะทัะนัะต ัะปะตะดััััั ะบะพะผะฐะฝะดั:
php artisan moonshine:project-schema
php artisan moonshine:project-schema
ะกะฝะฐัะฐะปะฐ ะฒัะฑะตัะธัะต ะฒัะต ะฒะฐัะธ pivot-ัะฐะฑะปะธัั ะดะปั ะบะพััะตะบัะฝะพะณะพ ัะพัะผะธัะพะฒะฐะฝะธั ัะฒัะทะธ BelongsToMany, ะทะฐัะตะผ ะฒัะฑะตัะธัะต ะฒัะต ะฝะตะพะฑั ะพะดะธะผัะต ัะฐะฑะปะธัั, ะดะปั ะบะพัะพััั ะฝัะถะฝะพ ัะณะตะฝะตัะธัะพะฒะฐัั ัะตััััั:
โ Select the pivot table to correctly generate BelongsToMany (Press enter to skip) โโ item_property โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Select tables โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ categories โโ comments โโ items โโ products โโ properties โโ users โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Select the pivot table to correctly generate BelongsToMany (Press enter to skip) โโ item_property โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Select tables โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ categories โโ comments โโ items โโ products โโ properties โโ users โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ะัะดะตั ัะพะทะดะฐะฝะฐ JSON-ัั ะตะผะฐ, ะบะพัะพััั ะฟัะธ ะถะตะปะฐะฝะธะธ ะผะพะถะฝะพ ะพััะตะดะฐะบัะธัะพะฒะฐัั ะธ ะธัะฟะพะปัะทะพะฒะฐัั:
project_20240613113014.json was created successfully! To generate resources, run:php artisan moonshine:build project_20240613113014.json
project_20240613113014.json was created successfully! To generate resources, run:php artisan moonshine:build project_20240613113014.json