laravel視圖&模板

laravel視圖&模板

若是想在每次渲染某些視圖時綁定數據,視圖組件能夠幫你把這樣的程序邏輯都組織到同一個地方。php

  • 首先建立__App\Http\ViewComposers__目錄
  • 建立provider:php artisan make:provider ComposerServiceProvider
  • 在boot函數下寫入
public function boot()
    {
        // 使用對象型態的視圖組件...
        view()->composer(
            'profile', 'App\Http\ViewComposers\ProfileComposer'
        );

        // 使用閉包型態的視圖組件...
        view()->composer('dashboard', function ($view) {

        });
    }
  • 在__config/app.php配置文件內加入服務提供者
App\Providers\ComposerServiceProvider::class
  • 在__App\Http\ViewComposers__目錄下建立__ProfileComposer.php__
namespace App\Http\ViewComposers;

use Illuminate\Contracts\View\View;

class ProfileComposer
{

    public function __construct()
    {
        // 全部依賴都會自動地被服務容器解析...

    }
//視圖被渲染以前,視圖組件的 compose 方法會被調用,並傳入一個 Illuminate\Contracts\View\View 實例。你能夠使用 with 方法來把數據綁定到視圖。
    public function compose(View $view)
    {
        $view->with('count', 1);
    }
}

在`profile.blade.php`下填寫`{{$count}}`

在控制器或者路由中直接經過調用view方法返回 __1__即成功

對全部的視圖都進行渲染操做html

或者直接把下面的方法放到`ComposerServiceProvider`服務提供者下
 view()->composer('*', function ($view) {
                $view->with('qq','fucker');
        });

或者使用共享在__AppServiceProvider的boot方法laravel

view()->share('key','value');
模板

Blade視圖文件使用__blade.php__做爲擴展名,保存於__resource/views__文件夾內,模板的緩存文件保存在__/storage/framework/views__下express

Blade 的 {{ }} 語法會自動調用 PHP htmlentites 函數來防護 XSS 攻擊。緩存

能夠使用 @ 符號來告知 Blade 渲染引擎該表達式應該維持原樣。閉包

擴充Bladeapp

Blade容許自定義命令,能夠使用directive方法註冊命令, 在__AppServiceProvider__的boot()方法下composer

return "<?php echo with{$expression}->format('m/d/Y H:i'); ?>";
        });
        Blade::directive('sb',function(){
            return "<?php echo 'hello world' ?>";
        });

在視圖層直接使用@調用便可ide

相關文章
相關標籤/搜索