92 lines
2.2 KiB
PHP
92 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Forms;
|
|
|
|
use App\Forms\CommonForm;
|
|
|
|
class UserForm extends CommonForm
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
public function getFormFields(): array
|
|
{
|
|
return [
|
|
'id',
|
|
'passwd',
|
|
'confirmpassword',
|
|
'name',
|
|
'email',
|
|
'mobile',
|
|
'role',
|
|
'status',
|
|
];
|
|
}
|
|
public function getFormFilters(): array
|
|
{
|
|
return [
|
|
'role',
|
|
'status',
|
|
];
|
|
}
|
|
public function getIndexFields(): array
|
|
{
|
|
return [
|
|
'id',
|
|
'name',
|
|
'email',
|
|
'mobile',
|
|
'role',
|
|
'status',
|
|
];
|
|
}
|
|
public function getBatchjobFields(): array
|
|
{
|
|
return ['status'];
|
|
}
|
|
|
|
public function getFormRule(string $action, string $field, array $rules = []): array
|
|
{
|
|
switch ($field) {
|
|
case "id":
|
|
$rule = "required|trim|min_length[4]|max_length[20]";
|
|
$rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->getAttribute('table')}.{$field}]" : "";
|
|
$rules[$field] = $rule;
|
|
break;
|
|
case "passwd":
|
|
$rules[$field] = in_array($action, ["create", "create_form"]) ? "required|trim|string" : "permit_empty|trim|string";
|
|
break;
|
|
case "confirmpassword":
|
|
$rules[$field] = in_array($action, ["create", "create_form"]) ? "required|trim|string|matches[passwd]" : "permit_empty|trim|string|matches[passwd]";
|
|
break;
|
|
case "email":
|
|
$rule = "required|trim|valid_email";
|
|
$rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->getAttribute('table')}.{$field}]" : "";
|
|
$rules[$field] = $rule;
|
|
break;
|
|
case "role":
|
|
$rules[$field] = "required|trim|string";
|
|
break;
|
|
default:
|
|
$rules = parent::getFormRule($action, $field, $rules);
|
|
break;
|
|
}
|
|
return $rules;
|
|
}
|
|
public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
|
|
{
|
|
switch ($field) {
|
|
case 'passwd':
|
|
case 'confirmpassword':
|
|
$form = form_password($field, "", [...$extras]);
|
|
break;
|
|
default:
|
|
$form = parent::getFieldForm($field, $value, $viewDatas, $extras);
|
|
break;
|
|
}
|
|
return $form;
|
|
} //
|
|
}
|