Laravel-как передать переменную в частичный вид макета


Laravel-как передать переменную в частичный вид макета

17.07.2016 10:23:24 Просмотров 56 Источник

У меня есть частичный вид в главном макете, который является навигационной панелью. У меня есть переменная $userApps. Эта переменная проверяет, если пользователь включил приложения (true), если включено, то я хотел бы отобразить ссылку на приложение в панели навигации.

Домашняя страница расширяется мастером.макет, который включает в себя партиалы.навигации

Мой код в навигаторе.лезвие.php это и есть:

@if ($userApps)
    // display link
@endif

Однако я получаю неопределенную переменную ошибку . Если я использую его в обычном представлении с контроллером, он прекрасно работает после объявления переменной и направления контроллера в представление. Я не думаю, что могу поместить контроллер в макет, так как я не могу направить контроллер к частичному виду, так как я элегантно это делаю?

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

https://stackoverflow.com/questions/38418864/laravel-how-to-pass-variable-to-layout-partial-view#comment64352772_38418864
используйте view composers проверить этот exemple : github.com/achrafkh/proj/blob/master/app/Providers/…

Ответы - Laravel-как передать переменную в частичный вид макета / Laravel - How to pass variable to layout partial view

Yuri Tkachenko

17.07.2016 10:53:04

Какую версию Laravel вы используете? Должно быть что-то вроде этого для вашего случая:

@include('partials.navbar', ['userApps' => $userApps])

Просто для проверки я сделал это локально, и это работает:

маршруты.РНР

Route::get('/', function () {
    // passing variable to view
    return view('welcome')->with(
        ['fooVar' => 'bar']
    );
});

ресурсы / мнения / добро пожаловать.лезвие.РНР

// extanding layout
@extends('layouts.default')

ресурсы / представления / макеты / по умолчанию.лезвие.РНР

// including partial and passing variable
@include('partials.navbar', ['fooVar' => $fooVar])

ресурсы / представления / партиалы / navbar.лезвие.РНР

// working with variable
@if ($fooVar == 'bar')
  <h1>Navbar</h1>
@endif

Так что проблема должна быть в чем-то другом. Проверьте свои пути и имена переменных.

https://stackoverflow.com/questions/38418864/laravel-how-to-pass-variable-to-layout-partial-view/38419057#comment64244975_38419057
Я использую 5.2. Я пробовал это, и это все еще не работает. Мне нужно добавить переменную в @продлить вид на мастер, а?
partho

31.10.2018 05:08:52

Этот подход очень прост:

В Родительском представлении :

@include('partial.sub_view1', ['This is value1' => $var1])

В подвиде :

{{ $var1 }}
https://stackoverflow.com/questions/38418864/laravel-how-to-pass-variable-to-layout-partial-view/53085356#comment102039913_53085356
Это не работает для меня, он просто отображает {{ $var1 }}буквально.
Mohammad Golmoradi

29.07.2019 06:09:35

@include ('your view address', array ('переменная в вашем представлении, например: id=$something '= > 'значение для этой переменной'))

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