laravel4 validation password confirmed , unique field

การ validation ของ laravel ในส่วนของ message error default จะมีกำหนดข้อความที่ app/lang/[th,en]/validation.php

$rules = array(
                'password' => 'required|min:4|confirmed',
                'email' => 'required|email|unique:users',
            );
            $validator = Validator::make($post, $rules);

            if ($validator->fails())
            {
                $messages = $validator->messages();
                $result['status'] = 400;
                $result['message'] = $messages->all();
                //$result['post'] = $post;
            }

จากตัวอย่าง จะมี validation type เพิ่มขึ้นมาจากตัวอย่างที่แล้ว คือ confirmed และ unique:$table_name โดยการใช้ confirmed ในหน้า view จะต้องมีฟิลด์ ที่ประกาศ name ตาม pattern นี้คือ xxx_confirmation เช่น

<input type="password" name="password_confirmation" class="form-control" placeholder="Confirm Password">

laravel จะทำการเช็ค field password กับ password_confirmation ให้เองว่า match กันหรือไม่
ส่วนการใช้ unique:$table_name จะต้องทำการสร้าง field name ให้ตรงกับฟิลด์อ้างอิง ตัวอย่างนี้คือ

 'email' => 'required|email|unique:users',

หมายความว่า จะต้องมี field ชื่อ email ใน $table_name ชื่อ users
laravel จะทำการ count unique email ให้เราเองว่าซ้ำหรือไม่

ถ้าหากเราต้องการ custom validation บาง rule เป็นที่เราต้องการให้เพิ่ม parameter $custom_message เข้าไป

$rules = array(
                'password' => 'required|min:4|confirmed',
                'email' => 'required|email|unique:users',
            );
$custom_messages = array(
                'password.required' => 'password is required',
                'password.confirmed' => 'password confimed not match',
            );
            $validator = Validator::make($post, $rules,$custom_messages);

Related posts:

This entry was posted in laravel4. Bookmark the permalink.