Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡ Π΅ΠΌ Π΄Π»Ρ MoonShine.
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
- ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
- ΠΠ΅ΡΠΎΠ΄Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°
- ΠΠ°ΡΡΠΎΠ²ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ ΡΠ°Π±Π»ΠΈΡ
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Resource, Model ΠΈ Migration ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠ·:
- SQL-ΡΠ°Π±Π»ΠΈΡΡ,
- JSON-ΡΡ Π΅ΠΌΡ,
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ,
- Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Laravel.
ΠΠ°ΠΊΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ:
composer require dev-lnk/moonshine-builder --devΠΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°:
php artisan vendor:publish --tag=moonshine-builderΠ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ Π²Π°ΡΠΈΠΌ JSON-ΡΡ Π΅ΠΌΠ°ΠΌ:
return [
// Directory where schematic files in json, yaml, etc. are stored.
'builds_dir' => base_path('builds'),
// Base path for models directory.
'base_model_path' => 'app/Models',
// Notification of duplicate files of models and resources with a new generation.
'is_confirm_replace_files' => true,
// Ask about adding a new resource to the provider.
'is_confirm_change_provider' => false,
// Ask about adding a new resource to the menu.
'is_confirm_change_menu' => false,
];ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
php artisan moonshine:build
ΠΠ°ΠΌ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
β Type βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β table β
β βΊ β json β
β β console β
β β model β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠ° 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!
INFO All done.
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ moonshine:build {target?} {--type=}, Π³Π΄Π΅:
target- ΡΡΡΠ½ΠΎΡΡΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ,type- ΡΠΈΠΏ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎtable,json,console,model.
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ:
php artisan moonshine:build-json {target?}- Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ· JSON-ΡΡ Π΅ΠΌΡphp artisan moonshine:build-table {target?}- Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ· SQL-ΡΠ°Π±Π»ΠΈΡΡphp artisan moonshine:build-resource {entity?} {fields?*}- Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈphp artisan moonshine:build-model {entity?} {--all}- Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡ
Π΅ΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ php artisan moonshine:build ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ table:
β Type βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β βΊ β table β
β β json β
β β console β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΠΡΠ±Π΅ΡΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠ°Π±Π»ΠΈΡΡ:
β Table ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β password_reset_tokens β β
β β sessions β β
β β statuses β β
β β tasks β β
β βΊ β users β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°Π·Ρ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΡΠΈΠΏ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ. ΠΡΠΈΠΌΠ΅Ρ:
php artisan moonshine:build users --type=tableΠΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
php artisan moonshine:build-table usersΠ Π΅Π·ΡΠ»ΡΡΠ°Ρ:
/**
* @return list<ComponentContract|FieldContract>
*/
protected function fields(): 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'),
];
}Π‘ΡΡΡΠΊΡΡΡΠ° JSON. Π Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ builds_dir ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΡΡ
Π΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, category.json:
{
"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-json category.jsonΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΠΈ ΡΠ²ΡΠ·ΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π°Π³ timestamps: true:
{
"resources": [
{
"name": "Category",
"timestamps": true,
"fields": []
}
]
}ΠΠΎΠ»Ρ created_at ΠΈ updated_at Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»Ρ created_at ΠΈ updated_at Π²ΡΡΡΠ½ΡΡ, ΡΠ»Π°Π³ timestamps Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² true.
Π Π°Π±ΠΎΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ»Π°Π³Ρ timestamps ΠΈ ΠΏΠΎΠ»Ρ deleted_at.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³ΠΎΠ² withResource, withModel, withMigration Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΡΡΠ°:
{
"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 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°Π·Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΡΡ Ρ ΠΏΠΎΠ»ΡΠΌΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
php artisan moonshine:build-resource Status id:Id:id name:Name:stringΠ Π΅Π·ΡΠ»ΡΡΠ°Ρ:
/**
* @return list<ComponentContract|FieldContract>
*/
protected function fields(): 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
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Π³ΠΎΡΠΎΠ²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Laravel Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ, ΡΠ²ΡΠ·ΡΠΌΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ MoonShine Resource Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ php artisan moonshine:build ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ model:
β Type βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β table β
β β json β
β β console β
β βΊ β model β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΠΠ°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½ΡΡ :
β Select models (use Space to select, Enter to confirm): βββββββ
β β» app/Models/Category.php β β
β β» app/Models/Comment.php β β
β β» app/Models/Product.php β β
β β» app/Models/Rating.php β β
β β» app/Models/Review.php β β
β β» app/Models/Tag.php β β
βββββββββββββββββββββββββββββββββββββββββββββββββββ 0 selected βΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°Π·Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ:
php artisan moonshine:build-model ProductΠΈΠ»ΠΈ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ°:
php artisan moonshine:build-model "App\Models\Product"ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π°Π³ --all:
php artisan moonshine:build-model --allΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΡΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠ°ΠΊΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ:
- Resource Ρ ΠΏΠΎΠ»ΡΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ
- Π‘Π²ΡΠ·ΠΈ (HasMany, BelongsTo, BelongsToMany, HasOne) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ
- ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠΎΠ»Π΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ timestamps ΠΈ soft deletes, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ app/Models. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
'base_model_path' => 'app/Models',ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
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 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΠΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° JSON-ΡΡ Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
project_20240613113014.json was created successfully! To generate resources, run:
php artisan moonshine:build project_20240613113014.json
- MoonVibe - Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ
