gpt4 book ai didi

php - laravel Controller 中的全局变量

转载 作者:可可西里 更新时间:2023-10-31 22:18:41 25 4
gpt4 key购买 nike

我希望 $year 变量在我的 PagesController 的所有函数中可用。我试过这段代码,但没有成功。

class PagesController extends Controller
{
public function __construct()
{
$dt = Carbon::parse();
$year = $dt->year;
}

public function index()
{
return view('pages.index');
}

public function about()
{
return view('pages.about', compact('year'));
}

public function create()
{
return view('pages.create', compact('year'));
}
}

最佳答案

<强>1。选项:使用 AppServiceProvider

在这种情况下 $year 可用于所有 View !

<?php

namespace App\Providers;

use Carbon;

class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->share('year', Carbon::parse()->year);
}

/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}
}

<强>2。选项:使用 View Composer

在这种情况下,该变量仅可用于您需要它的 View 。

不要忘记将新创建的提供程序添加到config/app.php!

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Carbon;

class ComposerServiceProvider extends ServiceProvider
{
/**
* Register bindings in the container.
*
* @return void
*/
public function boot()
{
// Using Closure based composers...
view()->composer('pages.*', function ($view) {
$view->with('year', Carbon::parse()->year);
});
}

/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}
}

<强>3。使用 Blade @inject-method

在需要年份的 View 中,您可以像这样注入(inject) Carbon 实例:

@inject('carbon', 'Carbon\Carbon')

{{ $carbon->parse()->year }}

关于php - laravel Controller 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32942379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com