在 Laravel Blade 文件中使用 IF 条件的正确方法是啥?

Posted

技术标签:

【中文标题】在 Laravel Blade 文件中使用 IF 条件的正确方法是啥?【英文标题】:What's the proper way to use IF condition in Laravel Blade file?在 Laravel Blade 文件中使用 IF 条件的正确方法是什么? 【发布时间】:2021-11-03 01:14:54 【问题描述】:

表头:

@if($products->subcategory->name == 'Image')
  <th>Demo</th>
@else

@endif

forelse 循环下的表格列:

@forelse ($products as $item)
  <tr>
      @if($item->subcategory->name == 'Image')
         <td>
            <p>$item->surl</p>
         </td>
        @else
      @endif 
 </tr>
@endforelse

问题是:IF 条件在 forelse 循环内部有效,但在外部无效。 如果子类别名称为“图像”,我想隐藏/显示一列。

写这个条件的正确方法是什么。

【问题讨论】:

什么是 $products?它是一个数组吗?如果它是一个数组,那么你会找到像$products[0]-&gt;subcategory-&gt;name == "Image" 这样的索引 我不知道该怎么感谢你。你只是救了我的命! 不用担心..... 【参考方案1】:

如果$products 是一个数组,那么你可以这样做:

@foreach($products as $item)
 <tr>
  @if($item->subcategory->name == 'Image')
     <td>
        <p>$item->url</p>
     </td>
    @else
  @endif 
 </tr>
@endforeach

如果您有任何特定的索引,那么您可以这样做:

@if(isset($products[2]) && ($products[2]->subcategory->name == "Image") 
<td>
        <p>$products[2]->url</p>
     </td>
@endif

它将检查索引 2 是否存在,并且还有许多其他方法可以检查相同的内容。一旦你验证了,你就可以去检查索引了。

【讨论】:

以上是关于在 Laravel Blade 文件中使用 IF 条件的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Blade 模板的 Laravel 5 表单中预选选项的条件 @if 语句

如何在 Laravel 的 PHP/Blade 中使用 Foreach 循环?

Laravel Blade If 语句在使用 Guard 进行身份验证检查时抛出非对象属性错误

Laravel Blade 中的三元组

正确使用 Blade(Laravel),在自己的文件中出现标题问题

Laravel 如何在blade文件中使用Vue组件