Laravel - View

时间:2022-10-16 00:52:20

使用视图

全局数据: 如果要在多个视图中使用通用数据,可以使用自定义数据服务提供者

<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider {
public function register(){}
public function boot(){
View::share('key', 'value');
}
}

基本使用

<?php
return view('dir.viewname', ['data' => $data]);

使用视图合成

视图合成将常用的视图或数据模块单独提取出来,以在多处实现复用

  1. 编写视图合成器
<?php
namespace App\View\Composers;
use App\Repositories\UserRepository;
use Illuminate\View\View;

class ProfileComposer {
//用户模型
protected $users;

public function __construct(UserRepository $users)
{
$this->users = $users;
}

//该方法在渲染时调用
public function compose(View $view)
{
$view->with('count', $this->users->count());
}
}
  1. 注册视图合成器: 在 /App/Providers/ViewServiceProvider 的 boot 方法中,加入:
<?php
View::composer('profile', ProfileComposer::class);
View::composer('dashboard', function ($view) {}); //也可以用闭包方式
  1. 在视图中使用
<?php
View::composer(
['profile', 'dashboard'],
MultiComposer::class
);


视图内容提供器

​php artisan make::provider ViewServiceProvider​