ผู้เขียน หัวข้อ: Basic Laravel5.5 Part2  (อ่าน 11522 ครั้ง)

ออฟไลน์ ผู้ดูแลระบบ

  • Administrator
  • Jr. Member
  • *****
  • กระทู้: 64
  • +0/-0
    • ดูรายละเอียด
Basic Laravel5.5 Part2
« เมื่อ: ตุลาคม 09, 2017, 12:00:24 am »
การสร้าง View จาก Blade
Laout
ในการ Application เรามักจะมี header,footer,navigation ต่างๆที่ใช้ซ้ำๆกันอยู่ไม่กี่แบบ เราสามารถสร้าง view ที่เป็น Laout หลายๆแบบ
แล้วค่อยเรียกมาใช้ได้ โดยการสร้าง main laout
สร้างไพล์ /resources/views/layouts/main.blade.php
<!Doctype html>
<html>
<head>
<title>Laravel5– @yield('page_title')</title>
</head>
<body>
    <div>
       @yield('content');
    </div>
</body>
</html>
จากบทที่แล้วใน file index view
/resources/views/hello/index.blade.php
@extends('layouts.main')
@section('page_title','Hello Page')
@section('content')
<h1>{{$title}}</h1>
<p>{{$subtitle}}</p>
@stop

Blade Control Structures
การแสดงข้อมูลจากตัวแปร หรือจากค าสั่ง PHP
Hello, {{ $name }} //
The current timestamp is {{ time() }} // แสดงผลเวลา
{{ isset($name)? $name : 'Default'}} //แปลว่าถ้า variable "name" ถูก set ให้ใช้แต่ถ้าไม่ ให้แสดงคำว่า "Default"
//หรือเขียนสั้นๆแบบนี้
{{$name or 'Default'}}

ถ้าต้องการแสดงข้อมูลแบบ non escaped
Hello,{!! $name !!}
คือถ้า $name = " Text ";
มันจะแสดง Text แต่ถ้าเป็น non escaped มันจะแสดง Text ที่ขีดเส้นใต้อยู่ อ่านค่า tag html ออกมาได้

Blade Control Structures
ถ้าต้องการให้แสดง Blade Syntax
@{{ Blade will not process this}}
หรือ Comment
{{--Comment In Blade hear--}}

Blade Control Structures
If Statement ใน blade
@if(count($record) === 1)
I have one record!
@elseif( count($record)> 1)
I have{{ count($record) }} records!
@elseI have no record!
@endif

Unless
@unless(Auth::check())
You are not signed in.
@endunless

For Loop
@for($i=0 $i<10; $i++)
<li>The current value is {{$i}}</li>
@endfor

While loop
@while(true)
I am looping.
@endwhile

Foreach Loop
@foreach($users as $user)
   <p> This is user {{ $user->name}} </p>
@endforeach

Forelse Loop
@forelse($users as $user)//ใช้ object ที่empty
   <p> This is user {{$user->name}}</p>
@empty
   <p> No user </p>
@endforelse

including Sub-Views
ใน blade สามารถ include view เช่นมี from input ที่คล้ายๆกันเราสามารถสร้างและ include ได้
@include('view.name')
นอกจาก include แล้วยังสามารถส่ง parameter
@include('view.name',['sume'=>'data'])

การอ้างอิง url ภายในเว็บ
<a href tag ใช้ได้สองวิธี
อ้างถึง
controller ด้วย action()
<a href="{{action('ArticlesController@show', [1])}}">
   Article1
[/url]
อ้างถึง url path ด้วย url()
<a href="{{ url('articles/1) }}">
   Article1
<img src="{{ url('images/some_image.png')}}">
[/url]
*
รูปภาพอยู่ที่ /public/images/