iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 6
0
Modern Web

初探 Laravel 5 三兩事系列 第 6

Day 6 Laravel View

  • 分享至 

  • xImage
  •  

Day 6 Laravel View

laravel 的樣板功能有提供好用的繼承的方式,可以讓你重複使用樣板,讓程式可重複性提高。

主樣板 base.blade.php

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>{{ Config::get('app.name') }} - @section('title')
  @show</title>
  
  @include('base.header')
</head>


<body>
  @include('base.top_bar')
  @include('base.left_bar')
  
  @section('content')
  @show
  
  
  @include('base.footer')


  @include('base.core_js')


<script type="text/javascript">
    
@section('my_script')
    
@show
</script>



</body>
</html>
  1. 子樣板可以使用 @include 的方式把檔案抓進去,像是 base.header.blade.php ...等
  2. @section('content') 則是之後要給予繼承填入的參數content,當然可以多個。

之後建立 要繼承base.blade.php 的樣板: list.blade.php

@extends('base')

@section('title')
Create Page
@stop

@section('my_script')
{{-- <script type="text/javascript" > --}}
        function() {
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            
            $("btn_say_hi").click(function(){
                alert( " hi " );
            });
        }()
{{-- </script> --}}
@stop



@section('content')  


      
<!-- cxpage start 頁面內容 start -->
    <!-- Panel -->
      <div class="panel">
          <div class="panel-body container-fluid">
            <div class="row row-lg">
              <div class="col-md-12 col-xs-12">
                
                
                    <div class="wrap">
                    <h3 class="title">用戶管理</h3>
                    
                    <div class="table-responsive">
                      <table id="table_list_userdomain" class="table table-striped table-bordered">
                        <thead>
                          <tr>
                            <th>#</th>
                            <th style="display: none;"></th>
                            <th>帳號</th>
                            <th>備註</th>
                            
                          </tr>
                        </thead>
                        <tbody>
@foreach ($TPL['adata'] as $doman )
    <tr>
        <td>
          {{ $loop->index+1+ ( ((int)$TPL['dbData']->currentPage() - 1 ) * (int)$TPL['dbData']->perPage() ) }}
        </td>
        <td style="display: none;">{{ $doman['id'] }}</td>
        <td>{{ $doman['user_name'] }}</td>
        <td>{{ $doman['momo'] }}</td>
      
    </tr>
@endforeach

                        </tbody>
                      </table>

{{ $TPL['dbData']->links('pagination.default') }}
                    </div>
                  </div>


              </div>
            </div>
          </div>



      </div>
      <!-- Panel END -->

    
    
    </div>
   
   
   
  </div>
  <!-- End Page -->
@stop
  1. 使用 @extends('base') 選擇繼承的主樣板 ,這裏繼承 base
  2. @section('my_script') ..... @stop 填入 指定的資訊他將會幫你放入你說指定的區塊。
  3. {{ $XXXXX }} 可以放入從controller傳入的參數。
  4. @foreach .... @endforeach 可以作出迴圈。
  5. 還有很多功能,官網也有詳細的介紹。

end

小弟使用覺得 blade 樣板系統 和codeigniter 以及 很久以前的Smarty 比起來,其實都差不多,但多了可以extends 和 incloud 以及簡單的 if 和 foreach ,實際上用起來蠻方便的。


上一篇
Day 5 Laravel Controller
下一篇
Day 7 Laravel Migration
系列文
初探 Laravel 5 三兩事8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言