asb / morphmtm
本软件包为您提供一个模块,可自动添加(模型、迁移等)需要文件,并将 Morph 多对多关系添加到您的项目中,同时附带常用基本命令,从而最大程度地减少您的试错操作。
1.1.0
2024-09-22 14:25 UTC
Requires
- php: >=8.0
This package is auto-updated.
Last update: 2024-09-22 14:31:48 UTC
README
也许对于您来说,实现一系列模型和重复的关系是无聊的、耗时且令人厌烦的,您将不得不复制您之前的代码或重构它们,这将是一种时间浪费。
本软件包为您提供一个模块,可自动添加(模型、迁移等)需要文件,并将 Morph 多对多关系添加到您的项目中,同时附带常用基本命令。
这最大限度地减少了您的试错操作。
如何使用此软件包
您不再需要定义关系,只需在应用模型的模型中添加必要的属性 Has+yourModel(如这个 => hasStatus)即可。
要求
该软件包需要 PHP 8 或更高版本。Laravel 软件包还要求 Laravel 10 或更高版本。
快速入门
-
安装
composer require asb/morphmtm
-
运行以下命令以发布软件包的配置文件:
php artisan vendor:publish --tag=morph-mtm-config
-
自动加载
默认情况下,模块类不会自动加载。您可以使用 psr-4 自动加载您的模块。例如
"autoload": { "psr-4": { "App\\": "app/", "Rack\\": "Rack/" } }
提示:不要忘记在之后运行 composer dump-autoload
在一个创建分类模块的示例中,我将解释如何使用它。
-
构建模块
php artisan mtm:build *模块名称*
php artisan mtm:build category
in continue the command, you will be asked to named, of course, you can confirm and pass the default value by pressed the enter key, but some default words may not be to your liking.`
What is the Model Name [Category]: >[enter] What is the Model Plural Name [categories]: >[enter] What is the Model Relation Name [categoryable]: >categorizable //Here the default name of the relationship is not good, and we changed it.
提示:如果您需要删除模块,可以使用此命令
php artisan mtm:remove 模块名称 -
在您的模型中添加必要的属性
//The class model requires these trait. use HasCategory; //has+yourModelName
-
使用预定义函数
-
获取所有具有分类的模型。
提示:所有函数都可以使用以下格式调用静态(MTM+modelName):
one example : MTMCategory::getModelsHave('new')
getModelsHave(string|ID $MTMmodel)
-
获取模型的所有分类。
getCategories(Model $model)
-
通过标题或 ID 检查模型是否具有此分类。
hasCategries(string|ID $model,string $MTMmodel)
-
通过标题或 ID 为模型分配一个分类。
assignCategory(Model $model,string|ID $MTMmodel)
-
通过标题或 ID 向模型添加一个分类。
addCategory(Model $model,string|ID $MTMmodel)
updateCategory(Model $model,string|ID $MTMmodel,string|ID $newMTMmodel)
removeCategory(Model $model,string|ID $MTMmodel)
removeAllCategory(Model $model)