視圖指的就是網頁的畫面
以前我們寫原生PHP的時候大概會向下圖這個樣子將邏輯和畫面寫在一起,也就是普遍的義大利麵程式碼(邏輯與畫面混砸不易修改)
<?php
if(isset($_POST["username"])){
// .... ;
}
?>
<form action="index.php" method="post">
<label for="username">使用者名稱</label>
<input type="text" id="username" name="username"><br/>
<label for="pwd">密碼</label>
<input type="password" id="pwd" name="pwd"><br/>
<input type="submit" name="submit" value="登入">
</form>
但進入了Laravel以後網頁(View)的角色就成了只會顯示資料或是提供資料寫入的輸入介面,不用在同個檔案上寫下混亂的邏輯
以下是laravel視圖的寫法,我們需要在view路徑下建立我們的網頁檔案命名為xxx.blade.php
// 如何呼叫Controller或是Route傳來的數值
{{$value}}
// 條件
@if ($num == 1)
<p>一筆紀錄</p>
@elseif ($num > 1)
<p>多筆紀錄</p>
@else
<p>沒有紀錄</p>
@endif
// 迴圈 for, while 都適用
@foreach ($orders as $order)
<p>訂單編號是 {{$order->Order_ID}}</p>
@endforeach
//forelse的使用類似於Foreach,唯一的差別是如果傳入的陣列是空白的可以使用@empty來接續後面的動作,而不會發生錯誤而停止程式的運行
@forelse ($orders as $order)
<p>訂單編號是 {{$order->Order_ID}}</p>
@empty
<p>目前沒有訂單</p>
@endforelse
// 條件判斷
@switch($i)
@case(1)
<p>1號</p>
@break
@case(2)
<p>2號</p>
@break
@default
<p>可以是任何號</p>
@endswitch
//include 跟原生的include相同就是將include裡面檔案裏面所有的內容遷入在我們include的這個視圖之中
@include('xxx')
//extends要搭配 @yield,extends寫上我們這隻程式被誰所用,我們可以使用@yield 呼叫我們所需特定@section的區塊而不需要顯示全部的內容
@extends('xxx') @yield @section
// example1.blade.php
@extends('example2')
@section('title')
<p>這是我的抬頭 呵呵</p>
@endsection
// example2.blade.php
@yield('title')
//在example2.blade.php就會出現example1.blade.php內 section名為title的所有內容了。
Laravel內有很多優化原本寫法的新寫法,以上列出比較常見的給各位。