Laravel ตอนที่ 2 — Form and Validation

project lazyman
Technologies For Everyone
2 min readMay 18, 2017

สวัสดีครับ หลังจากเรารู้จัก laravel กันแล้ว เชื่อว่าหลายท่านคงให้ความสนใจอย่างมาก ดังนั้นครั้งนี้จะมาสอนทำเรื่อง Form กับ Validation ของ laravel ซึ่งแน่นอนว่ามันเป็นสิ่งจำเป็น เพราะเดี่ยวนี้ไม่ว่าเว็บแอพไหนๆ ก็ย่อมมีฟอร์มเป็นส่วนประกอบสำคัญ ยกตัวอย่างเช่น ระบบ login จะมี login form, register form, password reset form เป็นต้น

มาเข้าเรื่องกันดีกว่าครับ ก่อนอื่นเลย ผมจะสร้าง Controller ตัวนึงขึ้นมาเพื่อใช้สำหรับ validation ดังนั้น ผมจะสั่งให้ Composer สร้างไฟล์ชื่อ ValidationController ขึ้นมา โดยการพิมพ์โค้ดดังนี้

php artisan make:controller ValidationController --plain

หลังจากนั้น ก็ทำการใส่โค้ด validation ที่เราต้องการลงไป

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class ValidationController extends Controller {
public function showform(){
return view('login'); // แสดงหน้า login
}
//validatetion สำหรับ login
public function validateform(Request $request){
print_r($request->all());
$this->validate($request,[
'username'=>'required|max:8',
'password'=>'required'
]);
}
}

ในส่วนของ validation สำหรับหน้า login ก็ใส่ตามที่ต้องการเลยครับ ในที่นี้ ผมกำหนดให้ username ต้องใส่ข้อมูล และไม่เกิน 8 ตัว ส่วน password ก็กำหนดให้ผู้ใช้ต้องใส่ข้อมูล

ต่อไป เรามาทำหน้า login กันครับ ผมสร้างไฟล์ view โดยใช้ชื่อ login.blade.php และเขียนโค้ดตามนี้ครับ

<html>

<head>
<title>Login Form</title>
</head>

<body>
//สำหรับแจ้งเตือน validation
@if (count($errors) > 0)
<div class = "alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
// สร้างฟอร์มสำหรับ login และกำหนดให้มี action ไปยัง validation controller ของเราครับ
<?php
echo Form::open(array('url'=>'/validation'));
?>

<table border = '1'>
<tr>
<td align = 'center' colspan = '2'>Login</td>
</tr>

<tr>
<td>Username</td>
<td><?php echo Form::text('username'); ?></td>
</tr>

<tr>
<td>Password</td>
<td><?php echo Form::password('password'); ?></td>
</tr>

<tr>
<td align = 'center' colspan = '2'>
<?php echo Form::submit('Login'); ? ></td>
</tr>
</table>
// จบ form
<?php
echo Form::close();
?>

</body>
</html>

ต่อไปเราก็เข้าไปทำการแก้ไขไฟล์ routes.php เพื่อให้มัน route ไปหา method ใน controller ของเรากันครับ โดยการเพิ่มโค้ดตามนี้

Route::get('/validation','ValidationController@showform');
Route::post('/validation','ValidationController@validateform');

หลังจากนั้นเรามาลอง test กันครับ ซึ่งจะได้ออกมาประมาณนี้

เป็นยังไงกันบ้างครับ ไม่ยากเลยใช่ไหมครับ สำหรับใครที่ต้องการเพิ่มสีสันหรือลูกเล่นให้กับตัว validation ก็สามารถทำได้โดยการเพิ่ม css หรือ js เข้าไปครับ ส่วนตอนหน้า เราจะพาทุกท่านพบกับ mPDF ซึ่งแน่นอนว่าปัจจุบัน เรานิยมทำไฟล์ PDF กัน และตัว laravel เองก็สามารถสร้างไฟล์ PDF จากบนเว็บไซต์ของเราได้เลย ติดตามต่อได้ในตอนหน้านะครับ

***ตอนต่อไป ->>>>>> Laravel ตอนที่ 3 — การสร้างไฟล์ PDF ใน Laravel ด้วย mPDF

--

--