Настройки доступа из компонента в OctoberCMS

Как сказал заголовок, я обращаюсь к настройкам из компонента, используя модель настроек в моем плагине, но получаю пустой результат вместо текущего, сохраненного в БД. Это то, что я делаю. Во первых это мой fields.yaml определение файла:

fields:
sandbox_enabled:
label: Activar modo Sandbox?
type: checkbox
default: false
ppal_fee:
label: Cargo de PayPal
type: text
ppal_discount:
label: Descuento por transferencias
type: text
ppal_app_id_sandbox:
label: PayPal Sandbox App ID (*)
type: text
ppal_developer_account:
label: PayPal Developer Account Email Address (*)
type: text
ppal_api_username_sandbox:
label: PayPal Username API Credentials (Sandbox) (*)
type: text
ppal_api_password_sandbox:
label: PayPal Password API Credentials (Sandbox) (*)
type: text
ppal_api_signature_sandbox:
label: PayPal Signature API Credentials (Sandbox) (*)
type: text
ppal_rest_client_id_sandbox:
label: PayPal REST API Username Credentials (Sandbox) (*)
type: text
ppal_rest_client_secret_sandbox:
label: PayPal REST API Secret Credentials (Sandbox) (*)
type: text

Во-вторых, alomicuba.recharge.settings записать значения в БД:

{
"sandbox_enabled":"1",
"ppal_fee":"0.029",
"ppal_discount":"0.30",
"ppal_app_id_sandbox":"",
"ppal_developer_account":"",
"ppal_api_username_sandbox":"",
"ppal_api_password_sandbox":"",
"ppal_api_signature_sandbox":"",
"ppal_rest_client_id_sandbox":"",
"ppal_rest_client_secret_sandbox":""}

И, наконец, как я получаю значения для параметров в моем компоненте:

public function onAmountChange()
{
// The user amount
$amount = post('amount');

if (empty($amount))
{
throw new \Exception(sprintf('Por favor introduzca un valor.'));
}

$toReload = $amount - ($amount * Settings::get('ppal_fee') - Settings::get('ppal_discount'));
$this->page["confirmation_text"] = $toReload;
}

Но это не работает, так как эти два значения Settings::get('ppal_fee'), Settings::get('ppal_discount') приходит пустой, почему? Что я сделал не так?

1

Решение

Вы указали следующую строку кода сверху?

use Alomicuba\Recharge\Models\Settings;

если вы указали, попробуйте использовать следующую строку кода:

$settings = Settings::instance();

$settings->ppal_fee;

весь код функции выглядит так

public function onAmountChange()
{
// The user amount
$amount = post('amount');

if (empty($amount))
{
throw new \Exception(sprintf('Por favor introduzca un valor.'));
}
$settings = Settings::instance();

$toReload = $amount - ($amount * $settings->ppal_fee - $settings->ppal_discount);
$this->page["confirmation_text"] = $toReload;
}

обращаться https://octobercms.com/docs/plugin/settings#reading-settings

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]