سلام دوره 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 پنل ادمینم که پیغام های خطا رو نمایش بده اگه بود ؟؟؟؟
اون $err رو خارج از if که میارم بیرون میبیرم تو همون renderTemplate که میذارم رنگ متغیر تغییر میکنه روش که موس رو میبرم
پیام میده
variable err might have not been defined
منظورش چیه؟؟؟؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟