You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel开发中如何实现博客列表项左右样式交替输出

问题原因

  1. 控制器存在变量名不匹配问题:你定义的变量是$blog,但compact()传入的是blogs,会导致视图取不到数据。
  2. 视图代码中,单次循环内同时写了blog--left和blog--right两个块,所以每条博客都会重复输出两次。

修改方案

1. 修正控制器代码

public function index()
{
    $blogs = Blog::all();
    return view('blog', compact('blogs'));
}

2. 修正视图代码

直接用Blade循环自带的$loop变量判断奇偶,动态切换样式类即可:

@extends('layouts.app')

@section('content')
<div class="container">
@foreach($blogs as $blog)
    <div class="blog-list">
        <div class="blog {{ $loop->odd ? 'blog--left' : 'blog--right' }}">
            <h2 class="blog_title">{{ $blog->title }}</h2>
        </div>
    </div>
@endforeach
</div>
@endsection

说明

$loop是Blade在@foreach循环中自动生成的内置变量,$loop->odd会在当前循环为奇数次(默认从1开始计数)时返回true,正好匹配你要的奇数序号左对齐、偶数序号右对齐的需求,不需要额外自定义计数变量。

内容的提问来源于stack exchange,提问作者user12869095

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:27:02