如何比较刀片模板中的变量

时间:2016-07-14 06:12:00

标签: laravel laravel-5.2 blade

Hellow Guys, 我试图比较我的刀片模板中的2个变量

我的控制器

  @if($pregunta->infopath == null)
     <td><img src="infopath/no-image.jpg" alt="" style="width:100px"/></td>
  @endif

在我看来 尝试这样的

$files = \File::files('images');

     foreach ($files as $file) {
          $info[] = pathinfo($file);
     }

$books = File::where('status', 1)->select('name')->get();

return view('cataloged.read', compact(['info','books']));

这项工作仅适用于最后一条记录 - 我的数据库中有2条记录 - 所以它只适用于本案例中的第二条记录...

我该怎么办?

感谢帮助人员!

修改

@foreach($info as $inf)
 @if(isset($books))
     @if($inf['basename'] == $books->name)
         Match
     @else
         No Match
     @endif
 @endif  
@endforeach

我的数据库中只有4本书,所以这很好用

 @foreach($books as $book)
           @foreach($info as $file)
              @if($book->name == $file['basename'])
                <p>Book</p>
              @else
                <p>No Book</p> 
              @endif
           @endforeach
  @endforeach

书 书 书 书

但是当我使用@else im gettin时 预订没有书6次 预订没有书6次 预订没有书6次 预订没有书6次

1 个答案:

答案 0 :(得分:0)

因为,$books也是数组。你应该做这样的事情:

@foreach($info as $inf)
    @if(isset($books))
        @foreach($books as $book)
            @if($inf['basename'] == $book->name)
                Match
            @else
                No Match
            @endif
        @endforeach
    @endif
@endforeach

修改

<?php
    $i = 0;
    $count = count($books);
?>
    @foreach($info as $file)
        @if(($i<$count)?($books[$i]->name == $file['basename']):false)
            <p>Book</p>
        @else
            <p>No Book</p>
        @endif
        <?php $i++ ?>
    @endforeach

但是,如果该书不应该在数组中,那么您应该写File::where('status', 1)->select('name')->first();而不是File::where('status', 1)->select('name')->get();