繁体   English   中英

如何在刀片模板的另一个视图中访问变量值?

[英]How to access a variable value in another view in blade template?

我在刀片模板中的视图代码是这样的:

视图/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

视图/选项卡/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 ?>

我的问题是如何在mainviewchildview访问$baalgh的值?

您的代码似乎有点杂乱无章,您应该尝试将计算保存在 controller 中,并使用视图作为计算数据的表示。 我想你可以这样做:

在您的 controller 中:

$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 ?>

这种方式要简单得多。

只需按照简单的步骤将数组包含到子视图中:

视图/Mainview.blade.php

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

@endsection

视图/选项卡/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

我希望它会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM