inisiatif / laravel-budget
印尼 zakat inisiatif 的预算私有集成
Requires
- php: ^8.1
- spatie/laravel-package-tools: ^1.15.0
- webmozart/assert: ^1.11
Requires (Dev)
- laravel/pint: ^1.10
- orchestra/testbench: ^8.0
- roave/security-advisories: dev-latest
- vimeo/psalm: ^5.0
README
印尼 zakat inisiatif 内部使用的用于访问年度预算的包。
使用的 Laravel 版本为 ^9.43 或 ^10.0
安装
您可以使用 composer 安装
composer require inisiatif/laravel-budget
如果需要,您可以发布迁移文件并使用以下命令运行它
php artisan vendor:publish --tag="budget-migrations"
php artisan migrate
您也可以使用以下命令发布配置文件
php artisan vendor:publish --tag="budget-config"
以下是发布配置文件的内容
<?php declare(strict_types=1); return [ /** * This is connection database must be available in database config */ 'connection' => env('LARAVEL_BUDGET_ELOQUENT_CONNECTION', env('DB_CONNECTION', 'sqlite')), /** * This is table name for budget */ 'table' => env('LARAVEL_BUDGET_ELOQUENT_TABLE', 'budgets'), /** * Indicated must be running migration, internally used in testing */ 'migration' => env('LARAVEL_BUDGET_ELOQUENT_MIGRATION', false), /** * Column name mapping, you can change this value is column name is different */ 'columns' => [ 'id' => 'id', 'code' => 'code', 'description' => 'description', 'total_amount' => 'total_amount', 'usage_amount' => 'usage_amount', 'is_over' => 'is_over', ], /** * Column type for version column * * Support: int, string, json */ 'version_column_type' => 'int', /** * Column version name */ 'version_column_name' => 'year', /** * For json type fill using json path, ex : `version->year` */ 'version_json_column_path' => null, /** * Disable or enable timestamps in model */ 'model_uses_timestamps' => true, ];
使用方法
模型
此库发布了一些与使用的预算模型相关的配置。
默认模型为 Inisiatif\LaravelBudget\Models\Budget
,如果想要使用其他模型,您需要在 AppServiceProvider
的 boot
方法中注册它。
use Inisiatif\LaravelBudget\LaravelBudget; LaravelBudget::useBudgetModelClass('Acme\Models\Budget');
请确保您创建的模型是
Inisiatif\LaravelBudget\Models\BudgetModel
的子类。
除了可以使用自己的模型外,库还允许您更改与表格相关的某些设置。
数据库连接
使用的数据库连接可以通过使用 env LARAVEL_BUDGET_ELOQUENT_CONNECTION
来更改,默认值是从 default
数据库配置中获取的。
您必须确保在
config/database.php
中使用了可用的连接名称。
表格
默认情况下,使用的表格名称为 budgets
,符合 Laravel 的约定。您可以使用 env LARAVEL_BUDGET_ELOQUENT_TABLE
来调整表格名称。
除了表格名称外,您还可以通过更改配置来映射使用的列。
'columns' => [ 'id' => 'id', 'code' => 'code', 'description' => 'description', 'total_amount' => 'total_amount', 'usage_amount' => 'usage_amount', 'is_over' => 'is_over', ],
有关配置的更详细信息,请参阅配置文件。
REST API
此库提供了一些 REST API 端点,您需要先在 routes/api.php
中注册路由。
// File routes/api.php use Inisiatif\LaravelBudget\LaravelBudget; LaravelBudget::routes();
-
列出预算
GET /api/budget GET /api/budget?version=2023 GET /api/budget?code=CODE001 GET /api/budget?description=Foo
您可以添加
limit
参数来增加输出数据量,默认值为15
。 -
输出当前预算版本,版本通常基于年份
GET /api/budget/current GET /api/budget/current?code=CODE001 GET /api/budget/current?description=Foo
您可以添加
limit
参数来增加输出数据量,默认值为15
。 -
使用
code
或id
显示一个预算GET /api/budget/CODE001 GET /api/budget/1
显示的 JSON 对象
{ "id": 1, "code": "CODE001", "description": "Anggaran pengembangan aplikasi", "total_amount": 100000000.00, "usage_amount": 0.00, "balance_amount": 100000000.00, "is_over": false, "is_limit_reached": false }
预算余额
此库还提供了通过添加和减少 usage
来更改余额的方法。
// Sebelumnya anda harus menganbil budget dari database $budget->increaseUsage(1000); // Untuk menambah penggunaan anggaran sebanyak 1000 $budget->decreaseUsage(500); // Untuk mengurasi penggunaan anggaran sebanyak 500
测试
composer test
更新日志
请参阅 更新日志 了解最近更改的详细信息。
安全漏洞
请查看 我们的安全策略 了解如何报告安全漏洞。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。