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()
{
//
}
}
2. Вариант: Используйте View Composer
В этом случае переменная доступна только мнения, где это необходимо.
Не забудьте добавить созданного провайдера в 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. Используйте лезвие @inject-method
В взглядах, которые нуждаются в годе можно впрыснуть экземпляр углерода, как это:
@inject('carbon', 'Carbon\Carbon')
{{ $carbon->parse()->year }}
привет им новый для Laravel. как я могу использовать первый вариант. мне нужно объявить что-то в страницахController.php, потому что я получил ошибку «Неопределенная переменная: год». P.S im using laravel 5 – Nixxx27
Если вы добавили код в свой 'AppServiceProvider', как описано, вам больше нечего делать. Что бросает эту ошибку? – Tim
i использование это .. общественная функция о() { возвращение $ год; }, а ошибка - неопределенная переменная: год. Я скопировал и вставил код. – Nixxx27