igfs/kernel/modules/option/service/OptionService.php
2024-09-24 17:22:09 +03:00

77 lines
1.8 KiB
PHP

<?php
namespace kernel\modules\option\service;
use kernel\FormModel;
use kernel\modules\option\models\Option;
class OptionService
{
public function create(FormModel $form_model): false|Option
{
$model = new Option();
$model->key = $form_model->getItem('key');
$model->value = $form_model->getItem('value');
$model->label = $form_model->getItem('label');
$model->status = $form_model->getItem('status');
if ($model->save()) {
return $model;
}
return false;
}
public function update(FormModel $form_model, Option $option): false|Option
{
$option->key = $form_model->getItem('key');
$option->value = $form_model->getItem('value');
$option->label = $form_model->getItem('label');
$option->status = $form_model->getItem('status');
if ($option->save()) {
return $option;
}
return false;
}
public function createFromParams(string $key, string $value, string $label): false|Option
{
$model = new Option();
$model->key = $key;
$model->value = $value;
$model->label = $label;
if ($model->save()) {
return $model;
}
return false;
}
/**
* @param $key
* @return false|array|string
*/
public static function getItem($key): false|array|string
{
$item = Option::where("key", $key)->first();
if ($item){
return getConst($item->value);
}
return false;
}
// public function createOptionArr(): array
// {
// foreach (Option::all()->toArray() as $option) {
// $optionArr[$option['id']] = $option['key'];
// }
// if (!empty($optionArr)) {
// return $optionArr;
// }
// return [];
// }
}