Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Laravel 5中的控制器将数据放入app.blade.php_Laravel_Controller - Fatal编程技术网

如何从Laravel 5中的控制器将数据放入app.blade.php

如何从Laravel 5中的控制器将数据放入app.blade.php,laravel,controller,Laravel,Controller,我需要将一些动态数据从controller放到app.blade.php,但我找不到任何控制器。我应该在哪里做这件事? 感谢将数据注入布局视图(由其他人@extend编辑的视图),您可以使用视图生成器。你如何做到这一点实际上相当不错 创建服务提供商(在应用程序/提供商中): 之后,不要忘记在config/app.php中将服务提供商注册到providers数组中: 'providers' => [ // other providers 'App\Providers\Comp

我需要将一些动态数据从controller放到app.blade.php,但我找不到任何控制器。我应该在哪里做这件事?
感谢

将数据注入布局视图(由其他人
@extend
编辑的视图),您可以使用视图生成器。你如何做到这一点实际上相当不错

创建服务提供商(在
应用程序/提供商
中):

之后,不要忘记在
config/app.php
中将服务提供商注册到
providers
数组中:

'providers' => [
    // other providers
    'App\Providers\ComposerServiceProvider'
]

感谢卢卡斯盖特的回答。但它需要一些修改,以使其能够处理Laravel渲染的所有视图

您需要将“*”字符作为通配符,以便可以将编写器附加到所有视图

View::composer('*', function($view){
    //any code to set $val variable
    $val = 'bar';
    $view->with('foo', $val);
});
因此,
app\Providers\composeServiceProvider.php的完整类如下:

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

class ComposerServiceProvider extends ServiceProvider {

    public function boot()
    {
        View::composer('*', function($view){
            //any code to set $val variable
            $val = 'bar';
            $view->with('foo', $val);
        });
    }

    public function register()
    {
        //
    }
}
现在,您可以在
resources\views\layouts\app.blade.php
文件中使用
$foo
变量作为

<div>
   {{$foo}}
</div>

{{$foo}}
这将向客户端呈现为

<div>
   bar
</div>

酒吧

阅读Laravel文档中的这两秒钟:我指的是加载app.blade.php的控制器。因为我需要把一些数据放进报头。它不是由任何控制器加载的。它由渲染的视图扩展。你可以在那里传递数据,或者更好,使用a。你能告诉我应该怎么做吗?我需要添加将返回变量的函数。为什么这个函数对我有效?我使用的是laravel 5.6,我添加了
CompositeServiceProvider
,当我试图打开视图时,它没有给我
这样的变量foo
。我需要刷新设置吗?
'providers' => [
    // Other Service Providers...
    App\Providers\ComposerServiceProvider::class,
],
<div>
   {{$foo}}
</div>
<div>
   bar
</div>