Php Laravel:忽略刀片模板中的对象

Php Laravel:忽略刀片模板中的对象,php,laravel,blade,Php,Laravel,Blade,我有一个关于拉威尔最佳实践的问题。我有一个显示我所有产品的刀片页面,我测试我的产品是否在我的循环中有图像,如果是这样,我会忽略它: @foreach ($products as $product) @if(is_null($product->getMedia()->first())) @continue @endif <div class="col-md-4

我有一个关于拉威尔最佳实践的问题。我有一个显示我所有产品的刀片页面,我测试我的产品是否在我的循环中有图像,如果是这样,我会忽略它:

       @foreach ($products as $product)
            @if(is_null($product->getMedia()->first())) 
                @continue
            @endif 
            <div class="col-md-4">
                 //display image and product informations
            </div>
        @endforeach
@foreach($products作为$product)
@如果(为空($product->getMedia()->first())
@继续
@恩迪夫
//显示图像和产品信息
@endforeach
我的问题是: 这是正确的吗

或者我忽略了控制器中没有图像的产品


谢谢

这取决于您的媒体。如果它与您的产品是同一个表,则可以,但如果它是一个关系,则最好在控制器中对其进行筛选。

这取决于您的介质。如果它与你的产品是同一个表,就可以了,但是如果是一个关系,最好在你的控制器中过滤它。

< P>这取决于你是否认为没有任何图像的产品是“无效的”/“不活动的”,或者如果你不想在这个特定的视图中显示它们。 您的控制器正在定义一个业务需求,如“获取符合特定条件的所有产品”。如果“有图像”是业务需求的一部分,因为任何没有图像的产品都不应该在销售中,那么逻辑就在您的控制器中

您的视图定义了一个特定的表示,如“将产品排列在一个漂亮的网格中”。如果“有图像”只是在这个布局中工作的一个要求,那么跳过这里可能是合理的

但是,完全跳过视图中的产品可能会产生一些不良后果:

  • 如果这些产品应该在销售中,正如控制器退回它们所暗示的那样,隐藏它们意味着客户看不到它们
  • 如果您有分页,或者找到的结果总数与用户实际可以看到的产品数量不匹配,除非您注意处理跳过的产品

因此,如果你正在构建某种“亮点”,最合适的是,跳过的产品实际上会在列表中进一步显示出来,而不是突出。

< P>这取决于你是否认为没有任何图像的产品是“无效的”/“不活跃的”,或者如果你不想在这个特定的视图中显示它们。 您的控制器正在定义一个业务需求,如“获取符合特定条件的所有产品”。如果“有图像”是业务需求的一部分,因为任何没有图像的产品都不应该在销售中,那么逻辑就在您的控制器中

您的视图定义了一个特定的表示,如“将产品排列在一个漂亮的网格中”。如果“有图像”只是在这个布局中工作的一个要求,那么跳过这里可能是合理的

但是,完全跳过视图中的产品可能会产生一些不良后果:

  • 如果这些产品应该在销售中,正如控制器退回它们所暗示的那样,隐藏它们意味着客户看不到它们
  • 如果您有分页,或者找到的结果总数与用户实际可以看到的产品数量不匹配,除非您注意处理跳过的产品

因此,如果您正在构建某种“亮点”,跳过的产品实际上会显示在更下面的列表中,只是不那么显眼,那么这是最合适的。您能分享一下您的产品模型吗?最好用php编写逻辑,将最终输出发送给bladeCould您也可以分享您的产品模型吗?最好用php编写逻辑,并将最终输出发送给BladeTo这回答了我的问题。谢谢显然,在控制器中执行逻辑。我想我今天累了。这个回答我的问题。谢谢显然,在控制器中执行逻辑。我想我今天累了