laravel视图&模板

laravel视图&模板

如果想在每次渲染某些视图时绑定数据,视图组件可以帮你把这样的程序逻辑都组织到同一个地方。

  • 首先创建__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__即成功

对所有的视图都进行渲染操作

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

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

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

Blade视图文件使用__blade.php__作为扩展名,保存于__resource/views__文件夹内,模板的缓存文件保存在__/storage/framework/views__下

Blade 的 {{ }} 语法会自动调用 PHP htmlentites 函数来防御 XSS 攻击。

可以使用 @ 符号来告知 Blade 渲染引擎该表达式应该维持原样。

扩充Blade

Blade允许自定义命令,可以使用directive方法注册命令, 在__AppServiceProvider__的boot()方法下

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

在视图层直接使用@调用即可

转载于:https://my.oschina.net/kakoi/blog/685246

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值