سلام دوره oop راکت رو که دیدم یه بخشش برا ولیدیشن بود یه کلاس نوشتیم برای validation
class validation
{
private $error;
private $data;
public function make(Array $data, Array $rules)
{
$valid = true;
$this->data = $data;
foreach ($rules as $item => $rulest) {
$rulest = explode("|", $rulest);
foreach ($rulest as $rule) {
$pos = strpos($rule, ":");
if ($pos !== false) {
$parameter = substr($rule, $pos + 1);
$rule = substr($rule, 0, $pos);
} else {
$parameter = "";
}
$methodName = ucfirst($rule);
$value = isset($data[$item]) ? $data[$item] : null;
if (method_exists($this, $methodName)) {
if ($this->{$methodName}($item, $value, $parameter) == false) {
$valid = false;
break;
}
}
}
}
return $valid;
}
public function getErrors()
{
return $this->error;
}
private function required($item, $value)
{
if (strlen($value) == "") {
$this->error[$item][] = " پر کردن فیلد " . $item . " الزامیست ";
return false;
}
return true;
}
private function email($item, $value)
{
if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
$this->error[$item][] = "فرمت ایمیل وارد شده صحیح نیست";
}
return true;
}
private function min($item, $value, $param)
{
if (strlen($value) < $param) {
$this->error[$item][] = " طول فیلد " . $item . " نباید کمتر از " . $param . " کاراکتر باشد ";
}
return true;
}
private function max($item, $value, $param)
{
if (strlen($value) > $param) {
$this->error[$item][] = " طول فیلد " . $item . " نباید بیشتر از " . $param . " کاراکتر باشد ";
}
return true;
}
private function confirm($item, $value, $param)
{
echo $orginal = isset($this->data[$item]) ? $this->data[$item] : null;
echo $confirm = isset($this->data[$param]) ? $this->data[$param] : null;
if ($orginal != $confirm) {
$this->error[$item][] = " فیلد " . $item . " با فیلد " . $param . " برابر نیست ";
return false;
}
return true;
}
}
حالا من دارم ازش استفاده میکنم به صورت زیر
public function insert()
{
$cat = $this->News->SelectAllNews();
if ($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['send'])) {
$rules = [
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:6|max:20',
'confirm_password' => 'required|confirm:password',
];
$img = $_FILES['img'];
$validation = new validation();
$valid = $validation->make($_POST, $rules);
if (!$valid) {
$err = $validation->getErrors();
}
$img = self::uploadFile($img, "news");
$this->News->addNews($_POST, $img);
header("location:insert");
}
return View::renderTemplate('admin.news.insert', ["cat" => $cat]);
}
قبلش use کردم کلاسو
حالا اون متغییر $err رو چطوری میتونم بفرستم به view پنل ادمینم که پیغام های خطا رو نمایش بده اگه بود ؟؟؟؟
شاید پاسخ شما همینجا باشد