1. Opcja: Użyj AppServiceProvider
W w tym przypadku $ rok jest dostępny dla WSZYSTKICH wyświetleń!
<?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. Opcja: Użyj View Composer
W tym przypadku zmienna jest dostępna tylko dla widoków, gdzie jest to potrzebne.
Nie zapomnij dodać nowo utworzonego dostawcy do 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. Używaj Ostrza @inject-method
ciągu poglądów, które potrzebują rok można wstrzyknąć przykład węgiel tak:
@inject('carbon', 'Carbon\Carbon')
{{ $carbon->parse()->year }}
Witam jestem nowy na laravel. jak mogę skorzystać z pierwszej opcji. czy muszę zadeklarować coś w pagesController.php, ponieważ mam błąd "Undefined variable: year". P.S im using laravel 5 – Nixxx27
Jeśli dodałeś kod do 'AppServiceProvider', jak opisano, nie musisz nic więcej robić. Co rzuca ten błąd? – Tim
Używam tego .. funkcji publicznej o() { return $ year; } i błąd jest niezdefiniowaną zmienną: rok. Skopiowałem i wkleiłem twój kod. – Nixxx27