บันทึกการสร้าง Controller และ View ของ Laravel

Image placeholder
แวะมาทักทายกันได้


จากบทความที่แล้ว ทั้ง 3 บทตามลำดับ

บันทึกขั้นตอนการติดตั้ง Laravel เครื่อง Mac ด้วย Docker แบบ Development Environment

บันทึกขั้นตอนการจัดการฐานข้อมูล laravel ด้วยคำสั่ง artisan

บันทึกการสร้าง pattern authen ด้วย artisan ที่ง่ายมากๆ


ในบทความนี้จะเป็นการสร้าง Controller เพื่อสร้าง Page ต่างๆ ภายในตัวเว็บแอปพลิเคชัน ถ้าได้ลองทำตามจากบทความที่ผ่านมาจะเข้าใจว่าที่มาเป็นอย่างไร ถ้าหลงเข้ามาที่บทความนี้ก่อนแล้วละก็ ย้อนไปอ่านบันทึกแรกก่อนครับ


ฝากกดโฆษณา Google Ads สัก click  เพื่อเป็นกำลังใจแก่ผู้เขียนด้วยนะครับ



ในบทความนี้จะมีการทำอยู่ 5 ขั้นตอนดังนี้


1. สร้าง Controller Class ด้วยคำสั่ง artisan

สร้าง Controller จากคำสั่ง

php artisan make:controller Class_file_name

ให้ใช้คำสั่งนี้ใน conmand line แล้วจะได้ไฟล์ Controller ที่ folder HTTP/Controller/Class_file_name ตามที่เราสร้าง


2. การสร้าง Routing

ไปที่ Folder Route ใน Project แล้วเพิ่ม code ลงไปตามที่เห็นด้านล่าง

Route::get('/home', 'TestController@index')->name('test');


argument 1 : /home คือ path

argument 2 : /home คือ Class  ที่ได้สร้างจากขั้นตอนที่ 1  และ หลัง @ จะเป็น function ตามในรูปของขั้นตอนที่ 1 

method name : name('test');  คือ ฟังก์ชันในการสร้าง  group ของ route โดยมี prefix ใน arg ของ method

3. เพิ่ม function เพื่อเรียก View

    ถ้ายังไม่ได้เพิ่มตามขั้นตอนที่ 1 ให้เพิ่มตามตัวอย่างได้เลย โดยที่ return method view แล้วมี ชื่อของ layout อยู่ด้านใน


4. สร้าง layout

ไปที่ folder view แล้วสร้าง layout ขึ้นมาแต่มีกฎอยู่ว่าจะต้องตั้งชื่อโดยที่มี pattern ตามนี้

name.blade.php

name คือ ชื่อของ layout



5. อธิบายการเชื่อมโยงของไฟล์ในโครงสร้าง


จากในรูปของขั้นตอนที่ 4 จะเห็นว่าจะมีไฟล์ที่เป็น name.blade.php อยู่ 2 ส่วน คือ ส่วนที่ 1 อยู่ใน folder layouts  และอยู่นอก layouts 

ใน folder layouts ให้นิยามของ ไฟล์นี้เป็น layout ที่เอาไว้ extends view เพื่อเป็น main view อย่างเช่น สมมติว่าชื่อ mylayout.blade.php 

<html>

   <head>

       <title></title>

   </head>

   <body>

        <h1>main page</h1>

        <p>This is a main page</p>

        <h2>test page</h1>

        @yield('content')

   </body>

</html>


ส่วน layout นอก folder จะเป็นการเรียก extends และ เขียน module บางส่วน ตัวอย่างเช่น

@extends('layouts.mylayout')
@section('content')
<h1>this is test home</h1>
@endsection


จากที่เห็นในส่วนนี้ก็จะไปแสดงที่อยู่ใน mylayout.blade.php 

 <h1>main page</h1>

 <p>This is a main page</p>

<h2>test page</h1>

<h1>this is test home</h1> 

แวะมาทักทายกันได้
donate