Php laravel控制器中的全局变量
我希望Php laravel控制器中的全局变量,php,laravel,global-variables,Php,Laravel,Global Variables,我希望$year变量在我的页面控制器的所有功能中都可用。我试过这个代码,但没有成功 类页面控制器扩展控制器 { 公共函数构造() { $dt=Carbon::parse(); $year=$dt->year; } 公共职能指数() { 返回视图('pages.index'); } 关于()的公共功能 { 返回视图('pages.about',压缩('year'); } 公共函数create() { 返回视图('page.create',压缩视图('year'); } } 试试这个: //give
$year
变量在我的页面控制器的所有功能中都可用。我试过这个代码,但没有成功
类页面控制器扩展控制器
{
公共函数构造()
{
$dt=Carbon::parse();
$year=$dt->year;
}
公共职能指数()
{
返回视图('pages.index');
}
关于()的公共功能
{
返回视图('pages.about',压缩('year');
}
公共函数create()
{
返回视图('page.create',压缩视图('year');
}
}
试试这个:
//give private declaration
private $year;
public function __construct()
{
$dt = Carbon::parse();
$this->year = $dt->year;
}
public function index()
{
return view('pages.index');
}
public function about()
{
$year = $this->year;
return view('pages.about',compact('year') );
}
public function create()
{
$year = $this->year;
return view('pages.create',compact('year') );
}
您可以在App::before事件中创建全局单例
App::before(function($request) {
App::singleton('customYear', function(){
$dt = Carbon::parse();
$customYear = $dt->year;
return $customYear;
});
// If you use this line of code then it'll be available in any view
View::share('customYear', app('customYear'));
//To get the same data in any controller you may use:
$customYear = app('customYear');
});
1。选项:使用AppServiceProvider
在这种情况下,所有视图都可以使用$year
<?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()
{
//
}
}
3。使用刀片
在需要这一年的视图中,您可以注入如下碳实例:
@inject('carbon', 'Carbon\Carbon')
{{ $carbon->parse()->year }}
你好,我是拉拉维尔的新朋友。如何使用第一个选项。我是否需要在pagesController.php中声明一些东西,因为我得到了一个错误“Undefined variable:year”。P.S im使用laravel 5如果您已将代码添加到AppServiceProvider
中,如前所述,则无需执行其他操作。抛出这个错误是什么?我使用这个。。公共函数about(){return$year;},错误为未定义变量:year。我复制并粘贴了您的代码。要使其生效,您不能只返回变量$year
,因为它与视图共享。您需要从函数返回一个视图:返回视图('pages.about')
,然后您可以从刀片模板中访问$year
,如下所示:{$year}}
yap这是正确的,我需要在所有视图上传递年份。感谢您的帮助,我尝试了这个private$year代码>和函数中的$year=$this->year;返回视图('pages.about',压缩('year')
但在视图中它返回null
?以下是我所做的private$superSupplier代码>和公共函数uu construct(){pointedSupplier=Supplier::where('id',Auth::guard('Supplier')->id())->with('Supplier\u role')->first();}$this->superSupplier=$pointedSupplier->Supplier\u role->super\u super代码>返回空值
@inject('carbon', 'Carbon\Carbon')
{{ $carbon->parse()->year }}