آفلاین
user-avatar

اعتبارسنجی با php

PHP -
7 ماه پیش
توسط سبحان دادخواه آپدیت شد
آفلاین
user-avatar
Davood ( 32693 تجربه )
7 ماه پیش
تخصص : کارآموز PHP

سلام
من دارم از این پکیج استفاده میکنم برای اعبار سنجی داده هام

Rakit Validation

داخل متد insert خبر به عنوان مثال میخوام ازش استفاده کنم

public function insert()
    {
        $cat = $this->Post->cat();
        $city = $this->Post->city();
        $user = $this->Post->getUser();
        if ($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['send'])) {
            $img = $_FILES['pic'];
            $img = $this->uploadFile($img, 'news');

            $validation = $this->validator->validate($_POST,[
                'titr'=>'required',
                'body'=>'required'
            ]);

            if($validation->fails()){
                $errors = $validation->errors();
                $errors = $errors->firstOfAll();
}          
                $this->Post->addNews($_POST, $img);
                header("location:list");

        }
        return View::renderTemplate('admin.news.insert', ["cat" => $cat,"user"=>$user,"city"=>$city]);
    }

اون $errors رو وقتی print_rمیکنم تو کنترلر کامل درست کار میکنه
ولی من میخوام این آرایه ارور رو بفرستم به ویو بالای فرم نمایش بدم اما نمیدونم چطوری
لطفا کمکم کنید

@hesammousavi

بهترین پاسخ انتخاب شده توسط Davood
آفلاین
user-avatar
حسام موسوی
7 ماه پیش

خوب مشخصه دیگه دوست من
در کد زیر

            if($validation->fails()){
                $errors = $validation->errors();
                $errors = $errors->firstOfAll();
}

شما ارورها رو میگیری . خوب باید به همراه renderTemplate ارسال بفرمایی error رو به ویو خودتون .
البته چون errors فقط اونجا مقدار دهی میشه باید قبلش مثلا مقدار errors رو برابر null قرار بدید که اگر اروری بود مقدار دهی بشه
اینطوری در ویو هم میتونید چک کنید اگر null نبود ارورها نشون داده بشن

آفلاین
user-avatar
حسام موسوی ( 382419 تجربه )
7 ماه پیش
تخصص : طراح و برنامه نویس

خوب مشخصه دیگه دوست من
در کد زیر

            if($validation->fails()){
                $errors = $validation->errors();
                $errors = $errors->firstOfAll();
}

شما ارورها رو میگیری . خوب باید به همراه renderTemplate ارسال بفرمایی error رو به ویو خودتون .
البته چون errors فقط اونجا مقدار دهی میشه باید قبلش مثلا مقدار errors رو برابر null قرار بدید که اگر اروری بود مقدار دهی بشه
اینطوری در ویو هم میتونید چک کنید اگر null نبود ارورها نشون داده بشن

آفلاین
user-avatar
Davood ( 32693 تجربه )
7 ماه پیش
تخصص : کارآموز PHP

ببخشید یه سوال دیگه اینا رو نمیشه فارسی کرد؟؟؟؟

پیغام ارورش میاد مثلا من دو تا ارور دارم

میگه فیلد title را پر کنید
فیلد body را پر کنید

من نمیخوام title و body بنویسم
میخوام مثلا باشه عنوان خبر و متن خبر

@hesammousavi

آفلاین
user-avatar
سبحان دادخواه ( 24719 تجربه )
7 ماه پیش
تخصص : دانشجوی برنامه نویسی :)

سلام . شمما فقط کافیه این مسیر رو دنبال کنید :

resources->lang->fa->validation.php  

و داخل این فایل که ارور های فارسی هست attributes یک آرایس که مقادیر input name هارو میگیره . مثلا برای اینکه نام یک اینپوت رو فارسی کنید اینطوری عمل کنید :

 'attributes' => array(
"title" => "عنوان"
)

به همین صورت میتونید برای نام هایی که برای اینپوت هاتون انتخاب میکنید فارسی سازیشون کنید.
اما خوب این حالت گلوبال هست یعنی برای تمامی اینپوت هایی با نام title ارور "عنوان را وارد کنید" رو نشون میده. اینکه برای هر اینپوت توی هر صفحه ارور یونیک بذارید رو هنوز نرفتم دنبالش . انشالا اساتید هم شما و هم منو راهنمایی میکنن تو این مورد
موفق باشید
@dfardabasi

برای ارسال پاسخ باید وارد سایت شوید