50 lines
1.5 KiB
PHP
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;
|
|
}
|
|
}
|