version 4.1.0

ตัวอย่างระบบลงทะเบียนสมาชิกแบบง่าย

  อังคารที่ 10 กุมภาพันธ์ พ.ศ. 2558 เวลา 21:38:50 น.      8,712 ครั้ง


ตัวอย่างระบบลงทะเบียนสมาชิกแบบง่าย

สร้างตาราง "tbl_user" ด้วยคำสั่ง SQL

 
CREATE TABLE `tbl_user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
  `create_at` datetime NOT NULL,
  `status` char(1) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

สร้างไฟล์ Model ชื่อว่า "User.php"

 use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface 
{
    
    use UserTrait, RemindableTrait;
    
    public $timestamps = false;

    // ชื่อตาราง tbl_user ในฐานข้อมูล
    protected $table = 'tbl_user';
    
}

เก็บไฟล์ Model "User.php" นี้ไว้ในโฟล์เดอร์ [skeleton]\app\models



คำสั่งภายในไฟล์ RegisterController.php

 class RegisterController extends BaseController 
{

    public function registerForm()
    {
        return View::make('register.form');
    }
    
    public function registerCreate()
    {
    
        $validator = Validator::make(Input::all(),array(
                'name'                              => 'required|min:4|max:100',
                'password'                          => 'required|min:4|max:15|confirmed',
                'password_confirmation'             => 'required|min:4|max:15',
                'email'                             => 'required|email|max:100|unique:tbl_user',
            ),
            array(
                'name.required'                     => 'Full Name ไม่สามารถเป็นค่าว่างได้',
                'email.required'                    => 'email ไม่สามารถเป็นค่าว่างได้',
                'email.email'                       => 'รูปแบบ E-Mail ไม่ถูกต้อง',
                'email.unique'                      => 'email นี้มีอยู่ในระบบแล้ว',        
                'password.required'                 => 'password ไม่สามารถเป็นค่าว่างได้',
                'password.confirmed'                => 'รหัสผ่านไม่ตรงกัน',
                'password_confirmation.required'    => 'confirm password ไม่สามารถเป็นค่าว่างได้',
            )
        );
        
        if ($validator->passes()) {
            
            $addUser                = new User();
            $addUser->name          = Input::get('name');
            $addUser->password      = Hash::make(Input::get('password'));
            $addUser->email         = Input::get('email');
            $addUser->create_at     = date("Y-m-d H:i:s",time());
            $addUser->status        = 'A';
            $addUser->save();
            
            return Redirect::to('register')->with('flash_notice','ดำเนินการสำเร็จ');  
            
        }else{
        
            return Redirect::to('register')->withErrors($validator)
                    ->withInput(Input::except('password'))
                    ->withInput(Input::except('password_confirmation'))
                    ->withInput();  
                    
        }
    }
    
}

คำสั่งที่ต้องรู้

  • Validator::make(Input::all(),array()); คือ คำสั่งในการตรวจสอบข้อมูล "ขาเข้า" ของฟอร์ม ที่เรากรอกข้อมูล
  • $validator->passes() คือ หากการตรวจสอบ (Validator) ข้อมูลถูกต้องครบถ้วน จะ return ค่ากลับมาเป็น true (ใช่)
  • $addUser = new User(); คือ คำสั่งเรียกใช้งาน Model ไฟล์ ชื่อว่า "User.php" ใช้กรณี "เพิ่มข้อมูล / สร้างข้อมูล" เท่านั้น
  • Input::get('name') คือ ดึงข้อมูลจากฟอร์มที่ส่งข้อมูลเข้ามา ข้อมูลที่ชื่อว่า "name" หรือ <input name="name">
  • Hash::make(Input::get('password')); คือ การเข้ารหัสด้วย Method make() ของระบบ Auth (ช่วยเรื่องความปลอดภัย)
  • $addUser->save(); คือ บันทึกข้อมูล (save) ลงตารางฐานข้อมูล "tbl_user"
  • Redirect::to('register')->with('flash',"ดำเนินการสำเร็จ") คือ ส่งเราไปยังหน้า "register" พร้อมข้อความ "ดำเนินการสำเร็จ" แนบไปด้วย

สร้างไฟล์ Views ชื่อว่า "form.blade.php"

 {{ Form::open([
    "url" => "register/create",
    "method" => "POST",
    "files" => true,
    "class" => "form-register",
]) }}
    <div class="box-login">
        <h2 style="text-align:center;">Register (ระบบลงทะเบียน)</h2>
        @if(Session::has('flash_notice'))
            <h3 style="color:red;text-align:center;">{{ Session::get('flash_notice') }}</h3><br />
        @endif
        <h3 style="color:red;text-align:center;"></h3>
        <table align="center">
            <tr>
                <td style="text-align:right;" valign="top"><label>Full Name  </label></td>
                <td>
                    {{ Form::text('name', Input::old('name'), [
                        'placeholder' => 'Full Name', 
                        'class' => 'form-control', 
                        'maxlength' => 100
                    ]) }}
                    @if ($errors->has('name')) 
                        <p style="color:red;font-size:14px;margin:0;padding:10px 0px;">
                            {{ $errors->first('name') }}
                        </p> 
                    @endif
                </td>
            </tr>
            <tr>
                <td style="text-align:right;" valign="top"><label>Email  </label></td>
                <td>
                    {{ Form::text('email', Input::old('email'), [
                        'placeholder' => 'Email', 
                        'class' => 'form-control', 
                        'maxlength' => 100
                    ]) }}
                    @if ($errors->has('email')) 
                        <p style="color:red;font-size:14px;margin:0;padding:10px 0px;">
                            {{ $errors->first('email') }}
                        </p> 
                    @endif
                </td>
            </tr>
            <tr>
                <td style="text-align:right;" valign="top"><label>Password  </label></td>
                <td>
                    {{ Form::password('password', [
                        'placeholder' => 'Password', 
                        'class' => 'form-control', 
                        'maxlength' => 15
                    ]) }}
                    @if ($errors->has('password')) 
                        <p style="color:red;font-size:14px;margin:0;padding:10px 0px;">
                            {{ $errors->first('password') }}
                        </p> 
                    @endif
                </td>
            </tr>
            <tr>
                <td style="text-align:right;" valign="top"><label>Confirm Password  </label></td>
                <td>
                    {{ Form::password('password_confirmation', [
                        'placeholder' => 'Confirm Password', 
                        'class' => 'form-control', 
                        'maxlength' => 15
                    ]) }}
                    @if ($errors->has('password_confirmation')) 
                        <p style="color:red;font-size:14px;margin:0;padding:10px 0px;">
                            {{ $errors->first('password_confirmation') }}
                        </p> 
                    @endif
                </td>
            </tr>
            <tr>
                <td style="text-align:right;"></td>
                <td><br />{{ Form::submit('Create', ['class' => 'btn']) }}</td>
            </tr>
        </table>
    </div>
{{ Form::close() }}

สร้างโฟล์เดอร์ชื่อว่า "register" ลงในโฟล์เดอร์ [skeleton]\app\views และสร้างไฟล์ View ชื่อว่า "form.blade.php"

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 1 | รูปภาพตัวอย่าง



ตัวอย่างคำสั่ง Route

 Route::get('register', 'RegisterController@registerForm');
Route::post('register/create', 'RegisterController@registerCreate');

ให้เราแทรกคำสั่งด้านบนนี้ ลงในไฟล์ "routes.php" ตามตัวอย่างได้เลย และหลังจากนั้นก็เรียก URL ได้เลย

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 2 | รูปภาพตัวอย่าง

1. เข้าไปที่ URL http://localhost/laravel_demo/public/register และจะแสดงผลดังรูป

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 3 | รูปภาพตัวอย่าง

2. ทดลองกดปุ่ม "Create" ก่อน... ที่เราจะเริ่มต้นการกรอกข้อมูลนะครับ

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 4 | รูปภาพตัวอย่าง

4. ทดลอง กรอกข้อมูล "email" ผิด และกดปุ่ม "Create" และดูผลลัพธ์

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 5 | รูปภาพตัวอย่าง

5. ที่นี้ก็กรอกข้อมูลให้ "ครบถ้วนและถูกต้อง" กดปุ่ม "Create" และดูผลลัพธ์

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 6 | รูปภาพตัวอย่าง

6. หากเพิ่มข้อมูล "ลงทะเบียน" ลงฐานข้อมูลสำเร็จ จะแสดงผลดังภาพครับ




นักแปล / นักเขียน / เรียบเรียง

author

เอกบิณ ใจแก้วมา (แม็ก)

"โปรแกรมเมอร์ตัวเล็ก ๆ" สะสมประสบการณ์ด้านการพัฒนาซอฟแวร์มามากกว่า 11 ปี
# ติดตามผลงานได้ที่ | พบกับเราที่ Google+ | Facebook






Comment