Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP到Laravel循环的转换_Php_Laravel_Blade - Fatal编程技术网

PHP到Laravel循环的转换

PHP到Laravel循环的转换,php,laravel,blade,Php,Laravel,Blade,我正在尝试转换以下PHP代码: <?php foreach ($arr as $v) { echo '<tr><td>' . $v['bookTitle'] . '</td><td>'; $ar = array(); foreach ($v['a

我正在尝试转换以下PHP代码:

    <?php
                    foreach ($arr as $v) {
                    echo '<tr><td>' . $v['bookTitle'] . '</td><td>';
                            $ar = array();
                            foreach ($v['authors'] as $key => $value) {
                            **$ar[] = '<a href="all?authorID=' . $key . '">' . $value . '</a>';**
                            }
                            echo implode(' , ', $ar) . '</td></tr>';
                    }

                    ?>

进入Laravel代码,但有问题

           @foreach ($arr as $v)
            <tr><td> {{ $v['bookTitle'] }}</td><td>
                <?php $ar = array(); ?>
                @foreach ($v['authors'] as $key => $value)
                    ***$ar[] = <a href="all?authorID=' . $key . '"> . $value . </a>;*** //{{ Html::link("all?authorID=  $key", "$value")}}

                 @endforeach
                {{implode(' , ', $ar)}}</td></tr>
             @endforeach
@foreach($arr作为$v)
{{$v['bookTitle']}
@foreach($v['authors']作为$key=>$value)
***$ar[]=;***//{{Html::link(“all?authorID=$key”,“$value”)}
@endforeach
{{内爆(',',$ar)}
@endforeach
有人能帮我吗

 @foreach ($arr as $v)
                <tr><td> {{ $v['bookTitle'] }}</td><td>
                    @php $ar = array(); @endphp
                    @foreach ($v['authors'] as $key => $value)
                        @php  $ar[]; @endphp =  {{ Html::link("all?authorID=  $key", "$value")}}
                     @endforeach
                    {{implode(' , ', $ar)}}</td></tr>
                 @endforeach
@foreach($arr作为$v)
{{$v['bookTitle']}
@php$ar=array()@endphp
@foreach($v['authors']作为$key=>$value)
@菲律宾比索$ar[]@endphp={{Html::link(“all?authorID=$key”,“$value”)}
@endforeach
{{内爆(',',$ar)}
@endforeach
致命错误
无法使用[]阅读

您的错误在这一行。
$val
不存在,因为您正在将每个对象循环到
$value
变量

$ar[] = <a href="all?authorID=' . $key . '"> . $val . </a>;
$ar[]=;
其次,blade语法如下所示。有关详细用法,请参阅

 @foreach ($v['authors'] as $key => $value)
     <td><a href="{{ url('all?authorID=' . $key) }}">{{ $value }}</a></td>

 @endforeach
@foreach($v['authors']as$key=>$value)
@endforeach

注意:请将长代码保存在controller中,而不是
routes/web.php

因为您使用的是Larvel 5.4.x,您可以简单地执行以下操作,而不必使用blade重新编写:

@php
    foreach ($arr as $v) {
        echo '<tr><td>' . $v['bookTitle'] . '</td><td>';
        $ar = array();
        foreach ($v['authors'] as $key => $value) {
            $ar[] = '<a href="all?authorID=' . $key . '">' . $value . '</a>';
        }
        echo implode(' , ', $ar) . '</td></tr>';
    }
@endphp
@php
外汇($arr为$v){
回音“.$v['bookTitle']”;
$ar=array();
foreach($v['authors']作为$key=>$value){
$ar[]='';
}
回波内爆(',',$ar)。';
}
@endphp
虽然这不是最好的解决方案,但是,除非您可以将此逻辑移动到控制器中,而不在视图中,否则它可能是一个很好的临时解决方案


如果您在Laravel文档中打开以下控制结构链接:并向下滚动到名为“PHP”的标题,它将提供您所需的一切。

能否发布完整代码,包括数组的值?还有,什么不起作用了?这实际上是一张书和作者的表格。只要点击作者的名字,你就可以找到所有与作者和合著者相关的书籍。我无法转换此$ar[]='';我想在@foreach循环中实现一个$variable,而不需要回显它,只要准备好它,这样我就可以在内爆后回显它()?如果您使用的是最新版本,那么您可以使用
@php[..]@endphp
,在重新考虑处理控制器中的作者之前,不要使用blade重写它。5.4.27您的意思是:(见上文)谢谢您,您对控制器中应该包含的长代码的看法是正确的,这将得到修复。但正如你在我上面的第一条评论中所看到的,我已经知道错误在哪一行了,我不知道的是如何将正在工作的php原始代码转换成laravel形式-我想在循环中实现一个数组键,这样我就可以填充空数组,然后对所有键进行模板化,这是$value,我也在上面对它进行了更正,我认为不需要使用数组来存储html并对其进行内爆。更好地使用刀片的设计方式,即使是纯PHP也做同样的事情,以回声变量或价值在HTMLAS的中间,我是回响作者,我不希望最后一个作者后面跟着一个“,”,也只是以前的那些。这也是我不在循环中使用简单html的原因。可能我必须使用Elount fil()方法,我正在检查:)谢谢,如果你这么说,那么我现在就不使用它(只添加htmlspecialchars())。我还想问你,为什么这是可能的,因为Larvel 5.4.x?