在MVC框架中,字母“V”代表視圖(Views)。它分離了應(yīng)用程序邏輯并展現(xiàn)邏輯。視圖文件存儲(chǔ)在 resources/views目錄。一般來說,視圖是包含了應(yīng)用程序的HTML。
第1步 - 復(fù)制下面的代碼,并將其保存在 resources/views/test.php
<html> <body> <h1>Hello, World</h1> </body> </html>
app/Http/routes.php
Route::get('/test', function(){ return view('test'); });
http://localhost:8000/test
當(dāng)構(gòu)建應(yīng)用程序時(shí),可能需要將數(shù)據(jù)傳遞到視圖。傳遞一個(gè)數(shù)組到視圖助手函數(shù)。傳遞一個(gè)數(shù)組后,我們可以使用它的鍵在HTML文件中來獲得鍵對(duì)應(yīng)的值。
第1步 - 復(fù)制下面的代碼,并將其保存在 resources/views/test.php
<html> <body> <h1><?php echo $name; ?></h1> </body> </html>
app/Http/routes.php
Route::get('/test', function(){ return view('test',[‘name’=>’Yiibai’]); });
http://localhost:8000/test
我們已經(jīng)看到如何能夠?qū)?shù)據(jù)傳遞給視圖,但有時(shí),有必要將數(shù)據(jù)傳遞到所有的視圖。Laravel使得這更簡(jiǎn)單。有一個(gè)叫作 “share()” 方法,該方法可以用于這一目的。share() 方法帶有兩個(gè)參數(shù),key和value。通常 share() 方法可以從服務(wù)提供者的啟動(dòng)方法被調(diào)用。我們可以使用任何服務(wù)提供者,AppServiceProvider或我們自己的服務(wù)提供者。
app/Http/routes.php
Route::get('/test', function(){ return view('test'); }); Route::get('/test2', function(){ return view('test2'); });
第2步-創(chuàng)建兩個(gè)視圖文件-test.php和test2.php的代碼相同。以下是兩個(gè)文件,這將共享數(shù)據(jù)。將以下代碼復(fù)制到這兩個(gè)文件中。resources/views/test.php & resources/views/test2.php
<html> <body> <h1><?php echo $name; ?></h1> </body> </html>
第3步- 更改啟動(dòng)方法的代碼在文件 - app/Providers/AppServiceProvider.php 如下所示.
(在這里,我們使用了共享方法,而且我們通過與所有的視圖共享數(shù)據(jù)。) app/Providers/AppServiceProvider.php
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot(){ view()->share('name', 'Yiibai'); } /** * Register any application services. * * @return void */ public function register(){ // } }
http://localhost:8000/test
http://localhost:8000/test2
Blade是一個(gè)簡(jiǎn)單,為L(zhǎng)aravel提供的強(qiáng)大模板引擎。Blade是Laravel輕量級(jí)模板語言,它的語法非常簡(jiǎn)單易學(xué)。blade模板包含擴(kuò)展— blade.php 并存儲(chǔ)在目錄 resources/views.
Blade也支持所有PHP的主要構(gòu)造器,創(chuàng)造循環(huán)和條件 — @for, @foreach, @while, @if 和 @elseif, 使您以避免開在模板到處使用<?php標(biāo)記。Blade 模板的主要優(yōu)點(diǎn)是,我們可以設(shè)置主模板,這個(gè)主模板可以被另一個(gè)頁面進(jìn)行擴(kuò)展。
第1步 - 創(chuàng)建一個(gè)主模板,并將其保存在 - resources/views/layouts/master.blade.php.
<html> <head> <title>@yield('title')</title> </head> <body> @section('sidebar') This is the master sidebar. @show <div class = "container"> @yield('content') </div> </body> </html>
@yield('title') 用于顯示的標(biāo)題的值
@section('sidebar')用于定義命名側(cè)邊欄部分
@show 用于顯示一個(gè)部分內(nèi)容
@yield('content') 用于顯示 content 的內(nèi)容
第3步 - 現(xiàn)在,創(chuàng)建另一個(gè)頁面并擴(kuò)展主模板,并將其保存在 - resources/views/page.blade.php
@extends('layouts.master') @section('title', 'Page Title') @section('sidebar') @parent <p>This is appended to the master sidebar.</p> @endsection @section('content') <h2>{{$name}}</h2> <p>This is my body content.</p> @endsection
@extends('layouts.master') 用于擴(kuò)展主布局?!發(fā)ayouts.master” — 在這里,layouts 是目錄的名稱,在這里我們已經(jīng)存儲(chǔ)在主模板 和 主模板 “master.blade.php”,這里“.master”是指其名字,但這里使用名稱而不帶擴(kuò)展 blade.php
@section('title', 'Page Title') ? 設(shè)置的標(biāo)題部分的值
@section('sidebar') ? 定義主布局的子頁面?zhèn)冗厵诓糠帧?
@parent ? 在主布局定義中顯示側(cè)邊欄部分的內(nèi)容。
<p> ? 這是追加到主側(cè)邊欄。</p> 增添一段內(nèi)容到側(cè)邊欄部分
@endsection ? 結(jié)束側(cè)邊欄部分。
@section('content') ? 定義內(nèi)容部分。
@section('content') ? 增添段的內(nèi)容到content 部分。
@endsection ? 結(jié)束該內(nèi)容部分。
第5步 - 現(xiàn)在,建立路由查看此模板。添加下面一行到文件 - app/Http/routes.php
Route::get('blade', function () { return view('page',array('name' => 'Yiibai')); });
http://localhost:8000/blade