【发布时间】:2021-09-18 06:30:55
【问题描述】:
好人。
我的项目有问题。
在布局刀片中,我需要从数据库中获取一些数据。但我无法传递变量,因为布局刀片没有路线。它只是一个主刀片。
有没有办法制作一个全局变量并全部使用刀片?
感谢您的宝贵回复。
【问题讨论】:
标签: php laravel global-variables
好人。
我的项目有问题。
在布局刀片中,我需要从数据库中获取一些数据。但我无法传递变量,因为布局刀片没有路线。它只是一个主刀片。
有没有办法制作一个全局变量并全部使用刀片?
感谢您的宝贵回复。
【问题讨论】:
标签: php laravel global-variables
拥有全局函数或变量有不同的方法 在我看来,最简单的方法是:
制作一个帮助 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() }}
希望,它有帮助......
【讨论】:
你可以使用 laravel helpers 来声明一个全局变量,你可以创建自己的自定义帮助函数。 你可以关注laravel custom helpers和这个自定义create helpers
【讨论】:
Create a new Service Provider as suggested in here
将您的新服务提供者添加到配置文件 (config/app.php)。
在新服务提供者的启动方法中使用:
View::share('something_cool', '这是一个很酷的共享变量'); 现在您可以在所有视图中使用 $something_cool。
【讨论】: