好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Laravel5.5 視圖 - 創建視圖和數據傳遞示例

Laravel5.5 視圖 - 創建視圖和數據傳遞示例

熱門標簽:太原極信防封電銷卡 天津營銷電話機器人加盟代理 南寧crm外呼系統平臺 電銷招聘機器人 格陵蘭島地圖標注 福泉電話機器人 事業單位如何百度地圖標注 熱線電話機器人 地圖標注入哪個科目

創建視圖

視圖包含應用的 HTML 代碼,并將應用的控制器邏輯和表現邏輯進行分離。視圖文件存放在 resources/views 目錄中。下面是一個簡單的視圖示例:

!-- resources/views/greeting.blade.php 視圖文件 -->
 
html>
  body>
    h1>Hello, {{ $name }}/h1>
  /body>
/html>

可以通過輔助函數 view ,返回這個視圖響應:

Route::get('/', function () {
  return view('greeting', ['name' => 'jack']);
});

view 方法的第一個參數是 resources/views 目錄下相應的視圖文件的名稱,第二個參數是一個數組,表示傳遞給視圖文件的數據。

在這個例子中,我們傳遞了一個 name 變量,在視圖中通過使用 Blade 語法將其顯示出來。

當然,視圖還可以存放在 resources/views 的子目錄中,用“.”號來引用子目錄中的視圖。

例如,如果視圖存放路徑是 resources/views/admin/profile.blade.php,那么我們可以這樣引用它:

return view('admin.profile', $data);

判斷視圖是否存在

如果需要判斷視圖是否存在,可調用 View 門面上的 exists 方法,如果視圖存在則返回 true:

use Illuminate\Support\Facades\View;
 
if (View::exists('emails.customer')) {
  //
}

創建第一個有效視圖

調用 View 門面上的 first 方法,可以用于創建給定視圖數組中的第一個存在的視圖:

use Illuminate\Support\Facades\View;
 
return View::first(['custom.admin', 'admin'], $data);

這個功能在應用或擴展包允許視圖被自定義或覆蓋時很有用。

傳遞數據到視圖

可以簡單通過數組方式將數據傳遞到視圖:

return view('greeting', ['name' => 'jack']);

除此之外,還可以通過 with 方法傳遞獨立的數據片段到視圖:

$view = view('greeting')->with('name', 'jack');

在視圖間共享數據

有時候,我們需要在所有視圖之間共享數據片段,這時可以使用視圖門面的 share 方法,通常,需要在某個服務提供者的 boot 方法中調用 share 方法,你可以將其添加到 AppServiceProvider 或生成獨立的服務提供者來存放這段代碼邏輯:

?php
 
namespace App\Providers;
 
use View;
 
class AppServiceProvider extends ServiceProvider
{
  /**
   * 啟動所有應用服務
   *
   * @return void
   */
  public function boot()
  {
    View::share('key', 'value');
  }
 
  /**
   * 注冊服務提供者
   *
   * @return void
   */
  public function register()
  {
    //
  }
}

視圖 Composer

視圖 Composer 是當視圖被渲染時的回調函數或類方法。

如果你有一些數據需要在視圖每次渲染時都做綁定,可以使用視圖 Composer 將邏輯組織到一個單獨的地方。

在本例中,首先要在某個服務提供者中注冊視圖 Composer,我們將會使用 View 門面來訪問 Illuminate\Contracts\View\Factory 的底層實現,記住,Laravel 不會包含默認的視圖 Composer 目錄,我們可以按照自己的喜好組織其路徑,例如可以創建一個 app/Http/ViewComposers 目錄:

?php
 
namespace App\Providers;
 
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
 
class ComposerServiceProvider extends ServiceProvider
{
  /**
   * 在容器中注冊綁定.
   *
   * @return void
   */
  public function boot()
  {
    // 使用基于類方法的 composers...
    View::composer(
      'profile', 'App\Http\ViewComposers\ProfileComposer'
    );
 
    // 使用基于回調函數的 composers...
    View::composer('dashboard', function ($view) {});
  }
 
  /**
   * 注冊服務提供者.
   *
   * @return void
   */
  public function register()
  {
    //
  }
}

注:如果創建一個新的服務提供者來包含視圖 Composer 注冊,需要添加該服務提供者到配置文件 config/app.php 的 providers 數組中。

現在我們已經注冊了視圖 Composer,每次 profile 視圖被渲染時都會執行 ProfileComposer@compose 方法,接下來我們來定義該 Composer 類:

?php
 
namespace App\Http\ViewComposers;
 
use Illuminate\View\View;
use Illuminate\Repositories\UserRepository;
 
class ProfileComposer
{
  /**
   * 用戶倉庫實現.
   *
   * @var UserRepository
   */
  protected $users;
 
  /**
   * 創建一個新的屬性composer.
   *
   * @param UserRepository $users
   * @return void
   */
  public function __construct(UserRepository $users)
  {
    // 依賴注入通過服務容器自動解析...
    $this->users = $users;
  }
 
  /**
   * 綁定數據到視圖.
   *
   * @param View $view
   * @return void
   */
  public function compose(View $view)
  {
    $view->with('count', $this->users->count());
  }
}

視圖被渲染前,Composer 類的 compose 方法被調用,同時 Illuminate\View\View 實例被注入該方法,從而可以使用其 with 方法來綁定數據到視圖。

注:所有視圖 Composer 都通過服務容器被解析,所以你可以在 Composer 類的構造函數中聲明任何你需要的依賴。

添加 Composer 到多個視圖

你可以傳遞視圖數組作為 composer 方法的第一個參數來一次性將視圖 Composer 添加到多個視圖:

View::composer(
  ['profile', 'dashboard'],
  'App\Http\ViewComposers\MyViewComposer'
);
composer 方法還支持 * 通配符,允許將一個 Composer 添加到所有視圖:

View::composer('*', function ($view) {
  //
});

視圖創建器

視圖創建器和視圖 Composer 非常類似,不同之處在于前者在視圖實例化之后立即失效而不是等到視圖即將渲染。

使用 View 門面的 creator 方法即可注冊一個視圖創建器:

View::creator('profile', 'App\Http\ViewCreators\ProfileCreator');

以上這篇Laravel5.5 視圖 - 創建視圖和數據傳遞示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Laravel 5框架學習之向視圖傳送數據
  • Laravel 5框架學習之模型、控制器、視圖基礎流程
  • Laravel 5框架學習之向視圖傳送數據(進階篇)
  • Laravel 5框架學習之路由、控制器和視圖簡介
  • Laravel 5框架學習之子視圖和表單復用
  • Laravel框架實現多個視圖共享相同數據的方法詳解
  • laravel框架模型、視圖與控制器簡單操作示例
  • laravel通過a標簽從視圖向控制器實現傳值
  • Laravel實現通過blade模板引擎渲染視圖
  • laravel框架中視圖的基本使用方法分析

標簽:郴州 阿克蘇 自貢 佳木斯 香港 金華 寶雞 通化

巨人網絡通訊聲明:本文標題《Laravel5.5 視圖 - 創建視圖和數據傳遞示例》,本文關鍵詞  Laravel5.5,視圖,創建,和,數據,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel5.5 視圖 - 創建視圖和數據傳遞示例》相關的同類信息!
  • 本頁收集關于Laravel5.5 視圖 - 創建視圖和數據傳遞示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美高清videossexo| 欧美激情一区二区三区视频高清| 色即色94欧美setu| 亚洲综合一区| 男人和女人爽爽爽| 一级在线免费观看| 荡受直播各种play| 欧美???免费毛| 亚洲男人在线天堂| 丰满高耸的双乳| 桃花综合久久久久久久久久网| 被绑到刑床强扒开腿狂虐的视频| 久久久噜噜噜久久中文字幕色伊伊| 女学生20岁一级毛片?| 欧美军人男同志做受69| 短篇**小说| 国产91精品露脸国语对白| 女人扒开屁股爽桶30分钟| 92久久偷偷做嫩草影院免费看| 涩涩97在线观看视频| 亲嘴脱内衣??内裤| 夜夜性∥奴娇| 夜夜橹橹网站夜夜橹橹| 高清欧美性猛交xxxx黑人猛交| 欧美在线国产| 秘?韩H漫画网站羞羞漫84| 好吊妞998gao视频在线看| 舒淇三级浴室洗澡在线观看| 久久福利影院| 粗大挺进闺蜜的幽深处h| 夜夜yy27tv| 欧亚色视频| 一本大道香蕉大在线最新| 双性吸住小核到抽搐双胞胎攻| 《国色天香》在线播放影院| 国产精品无码一区二区三区不卡不| 复古性xx电影在线| a级片免费| 全免费毛片在线播放| 国内精品人妻无码久久久影院蜜桃| 差差漫画在线看|