Dev to webs {Coding…}

เรียนรู้การพัฒนาซอฟเวอร์ เพื่อความรู้ที่ยั่งยืน

การใช้ Blade Directives เช่น @if, @foreach

Blade Directives เป็นฟีเจอร์ของ Blade Template Engine ใน Laravel ที่ช่วยให้เราสามารถเขียนโค้ด PHP ได้สะดวกขึ้นในรูปแบบที่อ่านง่าย Blade มี Directives ที่ช่วยในการควบคุมโค้ด เช่น @if สำหรับเงื่อนไข และ @foreach สำหรับการวนลูป ซึ่งทำให้การแสดงผลข้อมูลเป็นไปอย่างง่ายดาย

การใช้ Blade Directives พื้นฐาน

1. การใช้ @if สำหรับเงื่อนไข

@if เป็น Directive ที่ใช้ตรวจสอบเงื่อนไข หากเงื่อนไขเป็นจริงจะทำงานตามโค้ดในบล็อกนั้น Blade ยังรองรับคำสั่ง @elseif และ @else สำหรับการตรวจสอบเงื่อนไขเพิ่มเติม

<!-- resources/views/user.blade.php -->
@if($age >= 18)
    <p>คุณสามารถเข้าถึงเนื้อหานี้ได้</p>
@elseif($age >= 13)
    <p>คุณสามารถเข้าถึงเนื้อหาบางส่วนได้</p>
@else
    <p>ขออภัย คุณยังไม่สามารถเข้าถึงเนื้อหานี้ได้</p>
@endif

ในตัวอย่างนี้ @if ตรวจสอบว่าอายุมากกว่า 18 หรือไม่ ถ้าใช่จะแสดงข้อความแรก หากไม่ใช่จะตรวจสอบเงื่อนไขอื่น และถ้าไม่ตรงกับเงื่อนไขใดเลยจะแสดงข้อความในส่วนของ @else

2. การใช้ @foreach สำหรับการวนลูป

@foreach เป็น Directive ที่ใช้สำหรับการวนลูปข้อมูลที่เป็นอาร์เรย์หรือคอลเลกชัน ตัวอย่างเช่น การแสดงรายการสินค้า

<!-- resources/views/products.blade.php -->
<ul>
@foreach($products as $product)
    <li>{{ $product->name }} - ราคา: {{ $product->price }} บาท</li>
@endforeach
</ul>

ในตัวอย่างนี้ @foreach จะวนลูปข้อมูลใน $products และแสดงชื่อและราคาของสินค้าทุกชิ้นในรายการ

3. การใช้ @for, @while, และ @forelse

Blade ยังรองรับการใช้ลูป @for และ @while สำหรับการทำงานซ้ำตามเงื่อนไข หรือการวนลูปตามจำนวนรอบที่ต้องการ นอกจากนี้ยังมี @forelse ที่ใช้ตรวจสอบว่ามีข้อมูลหรือไม่ก่อนการวนลูป

@for – ใช้สำหรับการวนลูปตามจำนวนรอบที่กำหนด

@for($i = 0; $i < 5; $i++)
    <p>หมายเลข: {{ $i }}</p>
@endfor

@while – ใช้สำหรับการวนลูปตามเงื่อนไข

@while($counter > 0)
    <p>เหลือจำนวนรอบ: {{ $counter }}</p>
    @php $counter--; @endphp
@endwhile

@forelse – ใช้สำหรับแสดงข้อมูลหากมี หรือแสดงข้อความอื่นหากไม่มีข้อมูล

@forelse($items as $item)
    <p>{{ $item }}</p>
@empty
    <p>ไม่มีรายการ</p>
@endforelse

ตัวอย่างการใช้งาน Blade Directives

ตัวอย่างการใช้งาน Blade Directives ใน View เพื่อแสดงผลข้อมูลที่ดึงมาจาก Controller:

<!-- resources/views/profile.blade.php -->
<h1>ข้อมูลส่วนตัว</h1>
<p>ชื่อ: {{ $name }}</p>

@if($is_admin)
    <p>สถานะ: ผู้ดูแลระบบ</p>
@else
    <p>สถานะ: ผู้ใช้งานทั่วไป</p>
@endif

<h2>รายการสินค้า</h2>
<ul>
@foreach($products as $product)
    <li>{{ $product->name }} - {{ $product->price }} บาท</li>
@endforeach
</ul>

การนำไปใช้งาน

Blade Directives ช่วยให้การเขียนโค้ดเงื่อนไขและการวนลูปข้อมูลใน Blade Template เป็นไปได้ง่ายและสะอาดตา ช่วยให้นักพัฒนาเขียนโค้ดในรูปแบบที่เข้าใจง่าย และเพิ่มประสิทธิภาพในการจัดการข้อมูลที่ต้องการแสดงผลบนหน้าเว็บ ไม่ว่าจะเป็นการตรวจสอบเงื่อนไขหรือการวนลูปข้อมูล