otifsolutions / currency-layer
此Laravel包提供了与Currency Layer Api的简单集成,并包含了带有国旗信息的国家完整列表。它还包含自动同步每种货币汇率的命令。
Requires
- ext-curl: *
- ext-dom: *
- ext-json: *
- otifsolutions/curl-handler: ^1
- otifsolutions/laravel-settings: ^1
README
Laravel Currency Layer
此Laravel包提供了与Currency Layer Api的简单集成,并包含了带有国旗信息的国家完整列表。它还包含自动同步每种货币汇率的命令。
需求
PHP >= 7.4
Laravel >= 8.0
如何使用此库
通过 Composer 安装(推荐)
使用Composer
composer require otifsolutions/currency-layer
注意
此包与数据库引擎
myIsam
一起工作。如果您正在使用mysql 数据库
,则必须将数据库引擎从 config/database.php ->'connection' => 'mysql'
修改为'engine' => 'myIsam'
现在,运行迁移
php artisan migrate
然后,运行以下命令以填充所有表格中的国家、州、货币等数据
php artisan fill:tables
现在按照以下说明进行操作
在 CurrencyLayer 上注册以获取访问密钥,使用 artisan tinker
或在任何代码中写入此行,其中 yourAccessKey
(字符串)是从API获取的密钥
OTIFSolutions\Laravel\Settings\Models\Setting::set('crlKey', 'yourAccessKey');
设置 numberOfDays
密钥(正整数),这是要保留的天数数据
OTIFSolutions\Laravel\Settings\Models\Setting::set('daysRates', numberOfDays);
注意
要检查您设置了哪个密钥,尝试使用
get
方法,如下所示
OTIFSolutions\Laravel\Settings\Models\Setting::get('daysRates');
和
OTIFSolutions\Laravel\Settings\Models\Setting::get('crlKey');
如果您在代码中某处设置了 crlKey
,则第一次执行后删除该行。要重置或重新分配密钥,可以使用相同的行。但,建议使用tinker设置访问密钥。
设置完所有内容后,现在您可以同步货币汇率数据
执行此命令以获取汇率
php artisan rates:get
执行此命令以删除汇率
php artisan rates:delete
现在从包中将国家国旗发布到您的项目中
php artisan publish:flags
注意
命令
rates:delete
和rates:get
只能在设置密钥crlKey
和daysRates
后执行
在模型之间定义的关系
模型 Country 与 Currency
有 OneToOne
关系,与 Timezone
有 ManyToMany
关系,与 State
有 OneToMany
关系。
State 模型与 City
有 OneToMany
关系
Currency 模型与 CurrencyRate
有 OneToMany
关系