2015-11-20 48 views
0

我有一个视图,它在HTML页面中创建了9个块。每个区块可以有一个大的音符(如粘滞便笺)或最多6个小音符。需要一种有效的方法来避免使用Laravel 5重复代码片段

在每个音符的存在显示评论的选项。

的代码,使这些评论的选项从而出现在视图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 -->  

任何想法/方向将不胜感激!

+0

您是否每次都从控制器向您的视图传递18个变量,或者是否存在具有要显示的值的集合/数组? – Fester

+0

传递包含值的数组... –

+1

将重复的标记移动到部分模板,即您在主模板中包含'@ include'。 –

回答

1

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

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

当页面呈现,它将与您的代码块替换@include线。

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

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

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

注:有些人用刀片意见的命名约定斗争。如果您正在努力,请参阅我对previous post的回答

相关问题