栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Laravel 5中将数据传递到所有视图?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Laravel 5中将数据传递到所有视图?

这个目标可以通过不同的方法来实现,

1.使用baseController

我喜欢设置的方式,我制作了一个

baseController
扩展Laravel自己的类
Controller
,并在那里设置了各种全局性的东西。然后,所有其他控制器都从
baseController
Laravel的控制器扩展而来。

class baseController extends Controller{  public function __construct()  {    //its just a dummy data object.    $user = User::all();    // Sharing is caring    View::share('user', $user);  }}

2.使用过滤器

如果您知道要为整个应用程序中的每个请求的视图设置某种事实,那么您也可以通过在请求之前运行的过滤器来进行设置-
这就是我在Laravel中处理User对象的方式。

App::before(function($request){  // Set up global user object for views  View::share('user', User::all());});

要么

您可以定义自己的过滤器

Route::filter('user-filter', function() {    View::share('user', User::all());});

并通过简单的过滤器调用对其进行调用。

根据版本5更新。*

3.使用中间件

View::share
一起使用
middleware

Route::group(['middleware' => 'SomeMiddleware'], function(){  // routes});class SomeMiddleware {  public function handle($request)  {    View::share('user', auth()->user());  }}

4.使用View Composer

View
Composer还可以帮助绑定特定数据以不同方式进行查看。您可以将变量直接绑定到特定视图或所有视图。例如,您可以根据需要创建自己的目录来存储视图编辑器文件。并且这些视图组成文件通过Service提供与视图的交互。

View Composer方法可以使用不同的方式,第一个示例可以类似:

您可以创建一个

AppHttpViewComposers
目录。

服务提供者

namespace AppProviders;use IlluminateSupportServiceProvider;class ViewComposerServiceProvider extends ServiceProvider {    public function boot() {        view()->composer("ViewName","AppHttpViewComposersTestViewComposer");    }}

之后,将此提供程序添加到config / app.php的“ providers”部分下。

TestViewComposer

namespace AppHttpViewComposers;use IlluminateContractsViewView;class TestViewComposer {    public function compose(View $view) {        $view->with('ViewComposerTestVariable', "Calling with View Composer Provider");    }}

ViewName.blade.php

Here you are... {{$ViewComposerTestVariable}}

此方法仅对特定视图有用。但是,如果要触发ViewComposer到所有视图,我们必须将此单个更改应用于ServiceProvider。

namespace AppProviders;use IlluminateSupportServiceProvider;class ViewComposerServiceProvider extends ServiceProvider {    public function boot() {        view()->composer('*',"AppHttpViewComposersTestViewComposer");    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387199.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号