servermgrv2/app/Controllers/Common/CommonTrait.php
2023-07-17 21:09:49 +09:00

50 lines
1.5 KiB
PHP

<?php
namespace App\Controllers\Common;
trait CommonTrait
{
//Field별 Form Option용
protected function getFieldFormOption(string $field): array
{
switch ($field) {
default:
$temps = lang($this->_className . '.' . strtoupper($field));
if (!is_array($temps)) {
throw new \Exception(__FUNCTION__ . "에서 {$field}의 데이터가 array가 아닙니다.\n" . var_export($temps, true));
}
return array_merge(
[DEFAULTS['EMPTY'] => lang($this->_className . '.label.' . $field) . ' 선택'],
lang($this->_className . '.' . strtoupper($field))
);
break;
}
}
//Field별 Form Option용
final protected function getFieldFormOptions(array $fieldFilters): array
{
$fieldFormOptions = array();
foreach ($fieldFilters as $field) {
if (is_array($field)) {
throw new \Exception(__FUNCTION__ . "에서 field가 array 입니다.\n" . var_export($fieldFilters, true));
}
$fieldFormOptions[$field] = $this->getFieldFormOption($field);
}
return $fieldFormOptions;
}
//Field별 Form Rule용
final protected function getFieldRules(array $fields, array $fieldRules): array
{
$tempRules = $this->_model->getValidationRules(['only' => $fields]);
foreach ($fields as $field) {
if (is_array($field)) {
throw new \Exception(__FUNCTION__ . "에서 field가 array 입니다.\n" . var_export($fieldRules, true));
}
if (array_key_exists($field, $fieldRules)) {
$tempRules[$field] = $fieldRules[$field];
}
}
return $tempRules;
}
}