【发布时间】:2021-06-08 06:58:39
【问题描述】:
我正在使用 Laravel 开展一个项目,但遇到以下问题。当我尝试将 foreach 循环中的变量传递给另一个 Blade.php 文件时,只打印表的第一个条目。
blade.php 主文件中的代码:
@foreach($policereport as $key => $row)
<?php $data = $row -> content ?>
@include('design.textBox')
@yield('text', $data)
@endforeach
textBox.blade.php 文件中的代码:
@section('text')
<br>
<div class="text-box">{{ $data }}</div>
@stop
我也试过了,但结果是一样的:
@foreach($policereport as $key => $row)
@include('design.textBox', ['data' => $row -> content])
@yield('text')
@endforeach
唯一帮助我遍历表格中所有内容单元格的是:
@foreach($policereport as $key => $row)
<div class="text-box">{{ $row -> content }}</div>
@endforeach
我是否将变量错误地传递给 textBox 文件?我想将它传递给另一个文件,这样我的代码就更干净了,因为我必须为更多文件做同样的事情。
编辑:通过删除 textBox.blade.php 文件中的部分标记和 cmets 中推荐的 @yield('text') 部分解决了我的问题
【问题讨论】:
-
我认为对于您的用例,您可以改为使用blade component
-
@yield('text')有什么用?此外,如果您@include一个刀片文件,那么该文件中应该没有@sections,只有 HTML -
@brombeer 非常感谢!这解决了我的问题!
标签: php mysql laravel laravel-blade