Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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
Php 变量未定义在使用view composer后,使该变量在刀片模板中成为可选变量_Php_Laravel 7 - Fatal编程技术网

Php 变量未定义在使用view composer后,使该变量在刀片模板中成为可选变量

Php 变量未定义在使用view composer后,使该变量在刀片模板中成为可选变量,php,laravel-7,Php,Laravel 7,我一直试图在我的项目中全局定义一个变量(Laravel7)。我需要此变量在所有视图中都可用,但我遇到以下错误: $count is undefined Make the variable optional in the blade template. Replace {{ $count }} with {{ $count ?? '' }} 第一步,我创建了一个新的服务提供商TestSeriviceProvider public function boot() {

我一直试图在我的项目中全局定义一个变量(Laravel7)。我需要此变量在所有视图中都可用,但我遇到以下错误:

$count is undefined
Make the variable optional in the blade template. Replace {{ $count }} with {{ $count ?? '' }}

第一步,我创建了一个新的服务提供商
TestSeriviceProvider

 public function boot()
    {

        View::composer('*', function ($view) {

            $view->with('count', 333);
        });
    }

第二步,我在
congif\app.php

 App\Providers\TestServiceProvider::class,
然后我将以下代码写入
TestServiceProvider的
boot
方法

 public function boot()
    {

        View::composer('*', function ($view) {

            $view->with('count', 333);
        });
    }


我犯了什么错误

这可以在
AppServiceProvider
boot()方法中完成

只需添加
view()->share('count',333)
和您的
$count
可在任何刀片页面上访问。如果实现了多个共享数据,则可以为此创建单独的服务提供程序。但请记住,共享数据可能会在控制器中被覆盖


根据您希望这样做的原因,您可以研究中间件和
session()
helper()的组合,或者将共享变量组合到一个数组中

这可以在
AppServiceProvider
boot()方法中完成

只需添加
view()->share('count',333)
和您的
$count
可在任何刀片页面上访问。如果实现了多个共享数据,则可以为此创建单独的服务提供程序。但请记住,共享数据可能会在控制器中被覆盖


根据您希望这样做的原因,您可以研究中间件和
session()
helper()的组合,或者将共享变量组合到一个数组中

谢谢你,老兄,我已经尝试过这个方法了,它很管用,但我正在寻找一个解决方案,让我能够创建自己的
服务提供商
。我想知道在
AppServiceProvider
中定义全局变量是否安全?确保安全。如您所见,每个[Name]服务提供程序都扩展了相同的基本提供程序。换句话说,你在哪里引导它们并不重要。创建个人提供者的唯一原因是分离代码。只是别忘了在
config/app.php
中注册提供者。虽然提供者是Laravel引导序列的一个组成部分,但没有安全风险。很难理解Laraval是如何将您的外观、合同和外观捆绑到引导过程中的。我有时仍在挣扎。但是值得你花时间深入挖掘。谢谢你,老兄,我已经尝试过这个方法,它很管用,但我正在寻找一个解决方案,让我能够创建自己的
服务提供商。我想知道在
AppServiceProvider
中定义全局变量是否安全?确保安全。如您所见,每个[Name]服务提供程序都扩展了相同的基本提供程序。换句话说,你在哪里引导它们并不重要。创建个人提供者的唯一原因是分离代码。只是别忘了在
config/app.php
中注册提供者。虽然提供者是Laravel引导序列的一个组成部分,但没有安全风险。很难理解Laraval是如何将您的外观、合同和外观捆绑到引导过程中的。我有时仍在挣扎。但值得你花时间深入挖掘。