Как получить доступ к значению переменной в другом представлении в шаблоне блейда? - PullRequest
1 голос
/ 08 ноября 2019

Мои представления Код в шаблоне blade-сервера выглядит следующим образом:

Views / Mainview.blade.php

@extends('layouts.app')
@section('content')
    @php 
        $baalgh = array();
    @endphp
    @include('tabs.familyview')
    <?php print_r($baalgh); //prints empty array ?>
    @include('tabs.childview') //need $baalgh value inside this view
@endsection

Views / tabs / familyview.blade.php

@foreach($membersdata as $key=>$onemember)
    @php 
        $age = calculateage($onemember->memberdob);
        $onemember->age = $age;
        ((18 <=> $age) === 1)?:$baalgh[] = $onemember;
    @endphp
@endforeach
<?php print_r($baalgh); //here it displays data ?>

мой вопрос: как получить доступ к значениям из $baalgh в mainview и childview ?

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

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

В вашем контроллере:

$baalgh = $membersdata->filter(function($total, $member){
    $member->age = calculateage($member->memberdob);
    return $member->age <=> 18;
});

return view("Mainview.blade.php", ["baalgh" => $baalgh, "membersdata" => $membersdata]);

Затем в вашем Views/Mainview.blade.php:

@extends('layouts.app')
@section('content')
    @include('tabs.familyview')
    @include('tabs.childview')
@endsection

И на вашем Views/tabs/familyview.blade.php:

<?php print_r($baalgh); //here it displays data ?>

Так гораздо проще.

1 голос
/ 08 ноября 2019

Просто выполните простые шаги для включения массива в дочерний вид:

Views / Mainview.blade.php

@extends('layouts.app')
    @section('content')
    @php 
        $baalgh = array();
    @endphp
    @include('tabs.familyview', ['baalgh' => $baalgh])
    {{ var_dump($baalgh) }} //prints empty array

@endsection

Views / tabs / familyview.blade.php

@foreach($membersdata as $key=>$onemember)
    @php 
        $age = calculateage($onemember->memberdob);
        $onemember->age = $age;
        ((18 <=> $age) === 1)?:$baalgh[] = $onemember;
    @endphp
@endforeach
<?php print_r($baalgh);

 @include('tabs.childview', ['baalgh' => $baalgh])

Представления / вкладки / childview.blade.php

@foreach ($baalgh as $baal)
    {{$baal}} // $baalgh array is updated.
@endforeach

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...