需要一种有效的方法来避免使用Laravel 5重复的代码片段

时间:2015-11-20 06:26:20

标签: laravel laravel-5 blade

我有一个在HTML页面中创建9个块的视图。每个块可以有一个大音符(如粘滞便笺)或最多6个小音符。

在每个笔记上都有一个显示评论的选项。

因此,在视图中出现这些评论选项的代码会出现18次 - 必须有更好的方法来执行此操作,而不是让代码块出现这么多次。可能写出来的函数吗?

这是代码块:

<!-- start comments popover  -->                                            
<div class="popover-medium">
    <a href="javascript:void(0)" class="icon-entypo icon-text-document btn-note trigger" data-toggle="popover" data-placement=right></a>
    <div class="popover-avatar content hide">
        <ul class="row popover-content border-bottom list-inline">
            <li class="col-xs-9">
                <span class="small clearfix"></span>
                <span class="small">
                    @if (!empty($name->comments))
                        {{$name->comments}}
                    @else
                        No comments
                    @endif
                </span>
            </li>
        </ul>
    </div>
</div>
<!-- end comments popover  -->      

非常感谢任何想法/方向!

1 个答案:

答案 0 :(得分:2)

将您的代码块添加到新的刀片文件中,例如myblock.blade.php

然后在主视图中,您可以拨打@include('myblock')

当页面呈现时,它会将@include行替换为您的代码块。

此外,你的问题并不完全清楚。但值得注意的是,你可以这样做:

@foreach($array as $item)
@include('myblock', ['item'=>$item])
@endforeach

然后在您的代码块中引用$item。您可能实际上不需要将$item作为参数传递给@include,因为我认为在页面呈现时,脚本可以使用页面中的所有变量。

注意:有些人会对刀片视图的命名约定感到困惑。如果您正在努力,请查看我对previous post的回答