亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Laravel5.4框架中視圖共享數(shù)據(jù)的方法詳解

 更新時間:2019年09月05日 10:57:23   作者:張高偉  
這篇文章主要介紹了Laravel5.4框架中視圖共享數(shù)據(jù)的方法,結(jié)合實例形式詳細(xì)分析了Laravel框架視圖共享數(shù)據(jù)的原理、步驟與相關(guān)操作注意事項,需要的朋友可以參考下

本文實例講述了Laravel5.4框架中視圖共享數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:

每個人都會遇到這種情況:某些數(shù)據(jù)還在每個頁面進(jìn)行使用,比如用戶信息,或者菜單數(shù)據(jù),最基本的做法是在每個視圖空控制器中傳入這些數(shù)據(jù),但顯然并不是我們想要的結(jié)果。另一種方法就是使用視圖數(shù)據(jù)共享,視圖數(shù)據(jù)共享的基本使用很簡單,可查看視圖文檔了解詳情,這里我們演示兩個使用示例:在視圖間共享數(shù)據(jù)和視圖Composer

在視圖中共享數(shù)據(jù)

除了在單個視圖中傳遞指定數(shù)據(jù)之外,有時候需要在所有視圖中傳入同一數(shù)據(jù),即我們需要在不同視圖中共享數(shù)據(jù)。要實現(xiàn)這一目的,需要使用視圖工廠的share方法。

全局幫助函數(shù)view和response類似,如果傳入?yún)?shù),則返回Illuminate\View\View實例,不傳入?yún)?shù)則返回Illuminate\View\Factory實例。所以我們可以通過在服務(wù)提供者的boot方法中使用如下方式實現(xiàn)視圖間共享數(shù)據(jù):

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
  /**
   * Bootstrap any application services.
   *
   * @return void
   */
  public function boot()
  {
    //視圖間共享數(shù)據(jù)
    view()->share('name','高偉');
  }
  /**
   * Register any application services.
   *
   * @return void
   */
  public function register()
  {
    //
  }
}

接下來我直接用一個空的Laravel項目做演示,我們在 routes 文件首頁(welcome.blade.php)視圖:

Route::get('/', function () {
  return view('welcome');
});

然后在視圖中輸出視圖共享數(shù)據(jù):

<!DOCTYPE html>
<html>
  <head>
    <title>Laravel</title>
    <style>
      html, body {
        height: 100%;
      }
      body {
        margin: 0;
        padding: 0;
        width: 100%;
        display: table;
        font-weight: 100;
        font-family: 'Lato';
      }
      .container {
        text-align: center;
        display: table-cell;
        vertical-align: middle;
      }
      .content {
        text-align: center;
        display: inline-block;
      }
      .title {
        font-size: 96px;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="content">
        <div class="title">Laravel 5</div>
        <h1>hello,{{$name}}</h1>
      </div>
    </div>
  </body>
</html>

視圖Composer

上面的一種做法雖然可行,但是在別人下載項目后,共享數(shù)據(jù)是從數(shù)據(jù)庫中獲取的,執(zhí)行數(shù)據(jù)遷移的時候會報錯。這時候我們就要用到視圖Composer,視圖Composer通過視圖工廠的composer方法實現(xiàn)。該方法的第二個回調(diào)參數(shù)支持基于控制器動作和閉包函數(shù)兩種方式。

控制器的動作方式

首先要在服務(wù)提供者中注冊視圖 Composer,我們將會使用輔助函數(shù) view 來訪問 Illuminate\Contracts\View\Factory 的底層實現(xiàn),記住,Laravel 不會包含默認(rèn)的視圖 Composer 目錄,我們可以按照自己的喜好組織其路徑,例如可以創(chuàng)建一個 App\Http\ViewComposers 目錄:

<?php
namespace App\Http\ViewComposers;
use Illuminate\Contracts\View\View;
/**
* 基于類的實現(xiàn)方式
*/
class MottoComposer
{
  /**
   * 共享數(shù)據(jù)
   * @date  2018-01-13
   * @author 高偉
   * @param View    $view [description]
   * @return [type]      [description]
   */
  public function compose(View $view)
  {
    $view->with('motto', '嘎嘎嘎,我一直在努力!');
  }
}

然后我們在 AppServiceProvider 中繼續(xù)添加共享數(shù)據(jù):

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
  /**
   * Bootstrap any application services.
   *
   * @return void
   */
  public function boot()
  {
    view()->share('name','高偉');
    // 使用基于類的composers...第一個參數(shù)可以指定共享給那個視圖,多個視圖用數(shù)組,共享到全部視圖可以用 *
    view()->composer(
      'welcome', 'App\Http\ViewComposers\MottoComposer'
    );
  }
  /**
   * Register any application services.
   *
   * @return void
   */
  public function register()
  {
    //
  }
}

在視圖中顯示共享數(shù)據(jù):

...
<div class="content">
 <div class="title">Laravel 5</div>
 <h1>hello,{{$name}}</h1>
 <p>{{$motto}}</p>
</div>
...

閉包實現(xiàn)方式

閉包的實現(xiàn)方式相對來說簡單很多,這里就簡單貼書代碼:

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
  /**
   * Bootstrap any application services.
   *
   * @return void
   */
  public function boot()
  {
    view()->share('name','高偉');
    // 使用基于類的composers...
    view()->composer(
      'welcome', 'App\Http\ViewComposers\MottoComposer'
    );
    // 閉包實現(xiàn)方式
    view()->composer('*',function($view)
    {
      $view->with('info','http://www.iwanli.me');
    });
  }
  /**
   * Register any application services.
   *
   * @return void
   */
  public function register()
  {
    //
  }
}

視圖中顯示數(shù)據(jù):

...
<div class="content">
 <div class="title">Laravel 5</div>
 <h1>hello,{{$name}}</h1>
 <p>{{$motto}}</p>
 <p>{{$info}}</p>
</div>
...

更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家基于Laravel框架的PHP程序設(shè)計有所幫助。

相關(guān)文章

  • laravel7學(xué)習(xí)之無限級分類的最新實現(xiàn)方法

    laravel7學(xué)習(xí)之無限級分類的最新實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于laravel7學(xué)習(xí)之無限級分類的最新實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Laravel多用戶認(rèn)證系統(tǒng)示例詳解

    Laravel多用戶認(rèn)證系統(tǒng)示例詳解

    這篇文章主要給大家介紹了關(guān)于Laravel多用戶認(rèn)證系統(tǒng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Laravel 5使用Laravel Excel實現(xiàn)Excel/CSV文件導(dǎo)入導(dǎo)出的功能詳解

    Laravel 5使用Laravel Excel實現(xiàn)Excel/CSV文件導(dǎo)入導(dǎo)出的功能詳解

    這篇文章主要給大家介紹了關(guān)于在Laravel 5中如何使用Laravel Excel實現(xiàn)Excel/CSV文件導(dǎo)入導(dǎo)出功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下。
    2017-10-10
  • php無限級分類實現(xiàn)評論及回復(fù)功能

    php無限級分類實現(xiàn)評論及回復(fù)功能

    這篇文章主要為大家詳細(xì)介紹了php無限級分類實現(xiàn)評論及回復(fù)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • PHP筆記之:日期函數(shù)的使用介紹

    PHP筆記之:日期函數(shù)的使用介紹

    本篇文章小編將為大家介紹,PHP筆記之:日期函數(shù)的使用。需要的朋友參考下
    2013-04-04
  • 優(yōu)化WordPress的Google字體以加速國內(nèi)服務(wù)器上的運行

    優(yōu)化WordPress的Google字體以加速國內(nèi)服務(wù)器上的運行

    這篇文章主要介紹了優(yōu)化WordPress的Google字體以加速國內(nèi)服務(wù)器上的運行的方法,由于谷歌在內(nèi)地被墻導(dǎo)致其更新等方面都收到不同程度的影響,需要的朋友可以參考下
    2015-11-11
  • yii gridview實現(xiàn)時間段篩選功能

    yii gridview實現(xiàn)時間段篩選功能

    這篇文章主要為大家詳細(xì)介紹了yii gridview實現(xiàn)時間段篩選功能,一個輸入框,自動提交功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • laravel csrf排除路由,禁止,關(guān)閉指定路由的例子

    laravel csrf排除路由,禁止,關(guān)閉指定路由的例子

    今天小編就為大家分享一篇laravel csrf排除路由,禁止,關(guān)閉指定路由的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • php和redis實現(xiàn)秒殺活動的流程

    php和redis實現(xiàn)秒殺活動的流程

    這篇文章主要介紹了php和redis設(shè)計秒殺活動的流程,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • 用PHP讀取超大文件的實例代碼

    用PHP讀取超大文件的實例代碼

    數(shù)據(jù)量大帶來的問題就是單個文件很大,能夠打開這個文件相當(dāng)不容易,記事本就不要指望了,果斷死機
    2012-04-04

最新評論