Monday, 2 December 2024

DAY12 adjust admin dashboard

04 Nov 2024
21
luminox watches

copy folder ชื่อว่า assets ที่ Course Excise Files\Backend Theme ไปไว้ที่ C:\xampp\htdocs\project\realestate\
สราง folder ชื่อว่า backend ที่ C:\xampp\htdocs\project\realestate\ จากนั้น copy folder pages, partials ไปไว้
เปิด dashboard.html แล้ว copy ไปแทน admin_dashboard.blade.php ที่ได้สร้างไว้

 

จากนั้นก็ไล่แก้ css, js ให้โหลด {{asset (‘ใส่ลิงค์ตรงนี้‘)}}

<link rel=”stylesheet” href=”{{ asset(‘../assets/vendors/core/core.css’)}}”>

 

สราง admin.blad.php  แล้วเพิ่ม

@extends(‘admin.admin_dashboard’)
@section(‘admin’)

จากนั้นก็ cut ส่วนของ content มาไว้ส่วนนี้ เวลาจะแก้ก็มาแก้ตรงนี้

@endsection

ไปที่ file admin_dashboard.blade.php
แล้วเพิ่ม @yield(‘admin’) ไปแทน

 

 

จากนั้นก็เข้าไปแก้ view เป็น index ที่เราได้สร้างขึ้นใหม่ด้วย แทน admin_dashboard

 

1. @extends('admin.admin_dashboard')

คำสั่งนี้หมายความว่า View ที่กำลังจะถูกแสดงผล (ในไฟล์นี้) จะ extend หรือขยายจาก layout ที่ชื่อว่า admin.admin_dashboard ซึ่งเป็นไฟล์ที่เก็บโครงสร้างหรือรูปแบบของหน้าเว็บ เช่น header, footer, หรือส่วนที่เป็นโครงร่างหลักของหน้า

ตัวอย่าง:

  • ถ้าไฟล์ admin.admin_dashboard อยู่ในโฟลเดอร์ resources/views/admin และชื่อไฟล์คือ dashboard.blade.php
  • เมื่อใช้ @extends('admin.admin_dashboard') จะหมายถึงการนำไฟล์ dashboard.blade.php มาใช้เป็นโครงสร้างหลัก

2. @section('admin')

คำสั่งนี้คือการกำหนดพื้นที่เฉพาะใน layout หรือ parent view (ที่ @extends ไปถึง) ซึ่งส่วนนี้จะถูกแทนที่ด้วยเนื้อหาที่กำหนดในไฟล์ที่ใช้คำสั่งนี้ โดยจะมีการกำหนดชื่อของ section เป็น 'admin'

ตัวอย่างการใช้งานใน admin_dashboard.blade.php (ไฟล์ layout):

<!DOCTYPE html>
<html>
<head>
<title>Admin Dashboard</title>
</head>
<body>
<header>Admin Panel</header>
<div class=”content”>
@yield(‘admin’) <!– ตรงนี้จะถูกแทนที่ด้วยเนื้อหาจาก @section(‘admin’) –>
</div>
<footer>Footer Content</footer></body>
</html>

3. @yield('admin')

คำสั่ง @yield จะใช้ในการแสดงผลเนื้อหาของ section ที่กำหนดไว้ใน @section('admin') โดยในที่นี้ @yield('admin') จะดึงเนื้อหาที่ถูกใส่ใน @section('admin') จากไฟล์ลูก (child view) ที่ extends มาแทนที่ในตำแหน่งนี้

สรุปภาพรวม

โครงสร้างของ Blade ใน Laravel จะช่วยให้การจัดการหน้าเว็บต่าง ๆ ง่ายขึ้น โดยแบ่งเป็นส่วน ๆ เช่น layout, header, content, และ footer ซึ่งทำให้โค้ดของเราไม่ซ้ำซ้อนและสามารถนำกลับมาใช้ใหม่ได้

ตัวอย่างไฟล์หลัก (layout) admin_dashboard.blade.php:

<!DOCTYPE html>
<html>
<head>
<title>Admin Dashboard</title>
</head>
<body>
<header>Admin Panel</header>
<div class=”content”>
@yield(‘admin’) <!– จะแสดงเนื้อหาจาก @section(‘admin’) –>
</div>
<footer>Footer Content</footer></body>
</html>

ไฟล์ลูก (child view):

@extends('admin.admin_dashboard')

@section(‘admin’)
<h1>Welcome to Admin Dashboard</h1>
<p>This is the content for the admin dashboard page.</p>
@endsection

โดยเมื่อเรียกใช้งานไฟล์ลูกนี้ใน Laravel ตัว content ที่อยู่ใน @section('admin') จะถูกแทนที่ในตำแหน่ง @yield('admin') ในไฟล์ layout admin_dashboard.blade.php

Thanat Sirikitphattana

แบ่งปันกัน เราอยู่กันไม่เกิน 100 ปีหรอกครับ
สุดท้ายก็ทิ้งไว้ที่โลก จะคงเหลือไว้แต่คุณงามความดีที่ให้ระลึกถึงกันครับ

Follow Us / Thanat Sirikitphattana