92 lines
1.8 KiB
PHP
92 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace kernel;
|
|
|
|
use MadeSimple\Validator\Validator;
|
|
|
|
class FormModel
|
|
{
|
|
protected Validator $validator;
|
|
|
|
protected array $data = [];
|
|
|
|
public function __construct()
|
|
{
|
|
$this->validator = new Validator();
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
return [];
|
|
}
|
|
|
|
public function load(array $array): void
|
|
{
|
|
$rules = $this->rules();
|
|
foreach ($array as $key => $item) {
|
|
if (isset($rules[$key])) {
|
|
$this->data[$key] = $item;
|
|
}
|
|
}
|
|
}
|
|
|
|
public function getData(): array
|
|
{
|
|
return $this->data;
|
|
}
|
|
|
|
public function setItem(string $name, string|int $value): void
|
|
{
|
|
$this->data[$name] = $value;
|
|
}
|
|
|
|
public function getItem(string $name)
|
|
{
|
|
if (isset($this->data[$name])) {
|
|
return $this->data[$name];
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public function validate(): bool
|
|
{
|
|
$res = $this->validator->validate($this->data, $this->rules());
|
|
if (!$res) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function validateForUpdate(): bool
|
|
{
|
|
$res = $this->validator->validate($this->data, $this->rulesForUpdate());
|
|
if (!$res) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function getErrors(): array
|
|
{
|
|
return $this->validator->getProcessedErrors();
|
|
}
|
|
|
|
public function getErrorsStr(): string
|
|
{
|
|
$errorsArr = $this->getErrors();
|
|
$str = '';
|
|
if ($errorsArr['errors']) {
|
|
foreach ($errorsArr['errors'] as $key => $errorArr) {
|
|
foreach ($errorsArr['errors'][$key] as $error){
|
|
$str .= "$error <br>";
|
|
}
|
|
}
|
|
}
|
|
|
|
return $str;
|
|
}
|
|
|
|
} |