【问题标题】:How to make a global variable for all blade laravel如何为所有刀片 laravel 创建一个全局变量
【发布时间】:2021-09-18 06:30:55
【问题描述】:

好人。

我的项目有问题。

在布局刀片中,我需要从数据库中获取一些数据。但我无法传递变量,因为布局刀片没有路线。它只是一个主刀片。

有没有办法制作一个全局变量并全部使用刀片?

感谢您的宝贵回复。

【问题讨论】:

    标签: php laravel global-variables


    【解决方案1】:

    拥有全局函数或变量有不同的方法 在我看来,最简单的方法是:

    制作一个帮助 php 文件来恢复全局函数和变量,这样你 在 composer.json 中加载这个文件,你可以在任何你想要的地方调用它。

    我在 App/Helpers 目录中创建了 Functions.php 来恢复我的全局变量和函数。

    然后在 composer.json 中声明文件: “自动加载”,如果没有“文件(数组)”,则在其中添加它并将路径设置为 你的文件。在我的示例中,它是“app/Helpers/Functions.php”。

    "autoload": {
            "psr-4": {
                "App\\": "app/",
                "Database\\Factories\\": "database/factories/",
                "Database\\Seeders\\": "database/seeders/"
            },
            "files": [
                "app/Helpers/Functions.php"
            ]
        },
    

    最后,重新运行

    php artisan serve
    

    对于访问刀片中的变量,我不确定您是否可以这样做(我尝试过,但它返回未定义的变量)。

    你可以这样做:

    // in your helper file
    myFunc() {
        $myVar = 'value';
        return $myVar;
    }
    
    // in your blade
    {{ myFunc() }}
    

    或使用类:

    // in your helper file
    class myClass {
        protected $myVar = 'value';
        protected static $staticVar = 'value';
    
        public myFunc() {
            return $this->myVar;
        }
    
        public static staticFunc() {
            return myClass::$staticVar;
        }
    }
    
    // in your blade
    {{ (new myClass())->myFunc() }}
    // of static function
    {{ myClass::staticFunc() }}
    

    希望,它有帮助......

    【讨论】:

    • 是的,我可以在控制器中获取数据。但是我如何在布局刀片中使用它。因为我的布局刀片没有路线。
    • 我添加了完整的指南
    【解决方案2】:

    你可以使用 laravel helpers 来声明一个全局变量,你可以创建自己的自定义帮助函数。 你可以关注laravel custom helpers和这个自定义create helpers

    【讨论】:

      【解决方案3】:

      Create a new Service Provider as suggested in here

      将您的新服务提供者添加到配置文件 (config/app.php)。

      在新服务提供者的启动方法中使用:

      View::share('something_cool', '这是一个很酷的共享变量'); 现在您可以在所有视图中使用 $something_cool。

      【讨论】:

        猜你喜欢
        • 2017-02-24
        • 2021-05-03
        • 1970-01-01
        • 2022-07-12
        • 2022-11-02
        • 2015-10-18
        • 2021-10-08
        • 2020-09-24
        • 1970-01-01
        相关资源
        最近更新 更多