Передавать данные на все контроллеры и модели в laravel

#laravel-7

#laravel-7

Вопрос:

Я искал способ передать массив всему моему приложению laravel 7, которое будет доступно в контроллере, представлениях и моделях.

В настоящее время я могу поделиться некоторой переменной, расширив контроллер laravel следующим образом

 class BaseController extends Controller
{
  public function __construct()
  {
    //its just a dummy data object.
    $user = User::all();

    // Sharing is caring
    View::share('user', $user);
  }
}
 

но это работает только для представлений.
Есть ли лучший способ передавать данные на все контроллеры?
Идея заключается в том, чтобы для каждого пользователя, когда зарегистрированный набор данных (например, валюта и другие пользовательские настройки) будут извлечены из базы данных и будут доступны для всех контроллеров.

Ответ №1:

Ваш вопрос не совсем ясен, но лично для того, чтобы связать информацию со всеми пользователями, я создаю функции непосредственно в своей модели или в своем классе, например, отношения:

 class User extends Authenticatable
{    
   public function currency() {
       return '€';
   }
}
 

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

 $user->currency()
 

Комментарии:

1. Я понял вашу точку зрения, но мне нужно решение, с помощью которого я могу передавать массив данных на все контроллеры