1. Option: Verwenden Sie die AppServiceProvider
In Dieser Fall $ Jahr ist für ALLE Ansichten verfügbar!
<?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. Option: Verwenden Sie ein View Composer
In diesem Fall ist die Variable, auf die Ansichten nur zur Verfügung, wo Sie es brauchen.
Vergessen Sie nicht, den neu erstellten Provider zu config/app.php
hinzuzufügen!
<?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. Verwenden Blades @inject-method
Innerhalb der Ansichten, die das Jahr brauchen Sie eine Carbon-Instanz wie folgt injizieren:
@inject('carbon', 'Carbon\Carbon')
{{ $carbon->parse()->year }}
hallo neue IM zu Laravel. Wie kann ich die erste Option verwenden? Muss ich etwas in pagesController.php deklarieren, weil ich einen Fehler von "Undefined variable: year" bekommen habe. P.S im Laravel verwenden 5 – Nixxx27
Wenn Sie den Code zu Ihrem 'AppServiceProvider' wie beschrieben hinzugefügt haben, brauchen Sie nichts weiter zu tun. Was wirft diesen Fehler auf? – Tim
Ich benutze diese .. öffentliche Funktion über() { Rückkehr $ Jahr; } und der Fehler ist Undefinierte Variable: Jahr. Ich kopiere deinen Code und füge ihn ein. – Nixxx27