1. Opzione: Utilizzare l'AppServiceProvider
In questo caso $ anno è disponibile per TUTTE le visualizzazioni!
<?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. Opzione: Utilizzare un View Composer
In questo caso, la variabile è disponibile solo per il punto di vista in cui ne avete bisogno.
Non dimenticare di aggiungere il provider appena creato a 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. utilizzare lame @inject-method
Entro i punti di vista che hanno bisogno l'anno si può iniettare un esempio di carbonio come questo:
@inject('carbon', 'Carbon\Carbon')
{{ $carbon->parse()->year }}
ciao sono nuovo a laravel. come posso usare la prima opzione. devo dichiarare qualcosa in pagesController.php perché ho un errore di "Variabile non definita: anno". P.S im usando laravel 5 – Nixxx27
Se hai aggiunto il codice al tuo 'AppServiceProvider' come descritto, non c'è nient'altro che devi fare. Cosa sta generando questo errore? – Tim
io uso questa .. public function about() { return $ year; } e l'errore è Variabile non definita: anno. Ho copiato e incollato il tuo codice. – Nixxx27