Php 变量未定义在使用view composer后,使该变量在刀片模板中成为可选变量
我一直试图在我的项目中全局定义一个变量(Laravel7)。我需要此变量在所有视图中都可用,但我遇到以下错误: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() {
$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是如何将您的外观、合同和外观捆绑到引导过程中的。我有时仍在挣扎。但值得你花时间深入挖掘。