Как установить глобальную переменную в Laravel?

Как установить глобальную переменную в Laravel?

20.01.2019 10:07:00 Просмотров 75 Источник

Я пытаюсь установить глобальную переменную в Laravel, я установил в __construct(), но не могу использовать ее вне контроллера. Где я должен установить эту переменную?

public function __construct()
{
    $cat = Categories::get()->first();
}

но я не могу получить доступ к переменной $cat на некоторых страницах.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/54274326/how-to-set-global-variable-in-laravel#comment95371175_54274326
Вы можете посмотреть на представление Laravel Composers, чтобы поделиться данными во всех представлениях. (laravel.com/docs/master/views#view-composers )

Ответы - Как установить глобальную переменную в Laravel? / How to set Global variable in Laravel?

Является ответом!
Iftikhar uddin

20.01.2019 11:11:09

Если вы хотите получить доступ $cat

Я предполагаю, что вы используете protected $cat; public function __construct() { $this->cat = Categories::get()->first(); View::share('site_settings', $this->cat); } , они могут просто получить доступ к категории, используя BaseController.

вторая методика:

Вы также можете попробовать использовать класс Config. Все, что вам нужно сделать, это добавить следующий код в BaseController

$this->cat

Затем в любом месте вашего проекта вы можете получить значение с помощью boot

Dilip Patel

20.01.2019 12:01:58

Вы также можете использовать решение, которое приведено ниже:

App::before(function($request) {
    App::singleton('cat', function(){
        return Categories::get()->first();
    });
});

Теперь, чтобы получить данные в контроллере, используя строку ниже;

$cat = app('cat');

и вы можете передать данные в поле зрения, используя строку ниже:

view('home', compact('cat'));
ztvmark

16.11.2019 08:06:13

Использование поставщиков услуг

https://hdtuto.com/article/laravel-5-global-variable-in-all-views-file

приложение / провайдеры / AppServiceProvider.РНР

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider

{

    /**

     * Bootstrap any application services.

     *

     * @return void

     */

    public function boot()

    {

        view()->share('siteTitle', 'HDTuto.com');



    }

    /**

     * Register any application services.

     *

     * @return void

     */

    public function register()

    {

        //

    }

}

и на ваш взгляд

{{ $siteTitle }}
Помочь в развитии проекта:
Закрыть X