igfs/kernel/FormModel.php

82 lines
1.6 KiB
PHP
Raw Normal View History

2024-07-24 14:07:45 +03:00
<?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;
}
2024-09-10 12:55:41 +03:00
public function setItem(string $name, string|int $value): void
{
$this->data[$name] = $value;
}
2024-07-24 14:07:45 +03:00
public function getItem(string $name)
{
2024-10-16 17:54:33 +03:00
if (isset($this->data[$name])) {
2024-07-24 14:07:45 +03:00
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 getErrors(): array
{
return $this->validator->getProcessedErrors();
}
2024-10-16 17:54:33 +03:00
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;
}
2024-07-24 14:07:45 +03:00
}