Как создать глобальную переменную в laravel - PullRequest
0 голосов
/ 14 октября 2019

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

Например, я хочу запросить данные из таблицы users с->leftjoin Таблица и получить результаты для текущих пользователей во всех шаблонах блейдов, которые настроены на использование различных контроллеров.

Например ...

$user = DB::table('users')
->leftJoin('groups', 'groups.id', '=', 'users.group')
->select('users.*, groups.*)
->whereRaw('where user.id = (current_user need help here)')
-first();

Должно разрешить использование. ..

@if($user->groups.name != 'Admin')
You are not admin
@endif

Во всех шаблонах лезвий ...

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

В Laravel я знаю три способа совместного использования переменных для всех представлений:

  • Использование View::share в методе boot поставщика услуг. Переменной присваивается значение при загрузке поставщика услуг.
  • Использование компоновщика представления (View::composer). Переменной присваивается значение непосредственно перед отображением шаблона.
  • Использование создателя представления (View::creator). Переменной присваивается значение сразу после инициации объекта просмотра.

У Laravel есть документация для всех этих трех подходов:

0 голосов
/ 14 октября 2019

вы можете создать в appServiceProvider.php

public function boot()
{
 $user = DB::table('users')
 ->leftJoin('groups', 'groups.id', '=', 'users.group')
  ->select('users.*, groups.*)
  ->whereRaw('where user.id = (current_user need help here)')
   -first();
    View::share('user', $user);
}

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

use Illuminate\Support\Facades\View;
use App\User;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...