【问题标题】:How to make several rows with foreach?如何用foreach制作几行?
【发布时间】:2019-12-29 08:10:44
【问题描述】:

我正在使用 Laravel 5.8,在我的控制器中,我使用 paginate() 显示 4 个元素:

public function index()
{
    $proyects = Proyect::latest()->paginate(4);
    return view('proyect.index', compact('proyects'));
}

在视图中,4 个元素在一行中,但我想为每行显示 2 个元素。

<div class="row">

<div class="col-10 col-lg-12 col-md-6">
    <div class="card-deck">
        @forelse($proyects as $proyect)

        <div class="card">
            <div class="card-body">
                <h5 class="card-title">{{ $proyect->title }}</h5>
                <h6 class="card-subtitle mb-2 text-muted">
                 {{ $proyect->descripcion }}</h6>
                <p class="card-text">You can use the cap image as an 
                    overlay for the body</p>
                <a href="{{ route('proyect.show', $proyect) }}" 
                    class="card-link">Ver mas</a>
            </div>
            <div class="card-footer">
                <small class="text-muted">
                 {{ $proyect->created_at->diffForHumans() }}</small>
            </div>
        </div>

        @empty

        <li> Empty </li>

        @endforelse
    </div>
</div>

如何每行显示 2 个项目而不是一行中的所有项目?

【问题讨论】:

    标签: php html laravel bootstrap-4


    【解决方案1】:

    也许这是你的解决方案:

    
    <div class="row">
    @forelse($proyects as $proyect)
    <div class="col-6 col-lg-6 col-md-6">
        <div class="card-deck">
    
    
            <div class="card">
                <div class="card-body">
                    <h5 class="card-title">{{ $proyect->title }}</h5>
                    <h6 class="card-subtitle mb-2 text-muted">
                     {{ $proyect->descripcion }}</h6>
                    <p class="card-text">You can use the cap image as an 
                        overlay for the body</p>
                    <a href="{{ route('proyect.show', $proyect) }}" 
                        class="card-link">Ver mas</a>
                </div>
                <div class="card-footer">
                    <small class="text-muted">
                     {{ $proyect->created_at->diffForHumans() }}</small>
                </div>
            </div>
    
            @empty
    
            <li> Empty </li>
    
    
        </div>
    @endforelse
    </div>
    
    

    【讨论】:

      【解决方案2】:
      public function index()
      {
          $proyects = Proyect::latest()->paginate(10);
          return view('proyect.index', compact('proyects'));
      }
      

      array_chunk 是一个 php 函数,可以拼接你的数组。

      @forelse(array_chunk($proyects->all(),2) as $rows)
          <div class="row">
              @foreach($rows as $proyect)
                  <div class="col-10 col-lg-12 col-md-6">
                      <div class="card-deck">
                          <div class="card">
                              <div class="card-body">
                                  <h5 class="card-title">{{ $proyect->title }}</h5>
                                  <h6 class="card-subtitle mb-2 text-muted">{{ $proyect->descripcion }}</h6>
                                  <p class="card-text">You can use the cap image as overlay for the body</p>
                                  <a href="{{ route('proyect.show', $proyect) }}" class="card-link">Ver mas</a>
                              </div>
                              <div class="card-footer">
                                  <small class="text-muted">{{ $proyect->created_at->diffForHumans() }}</small>
                              </div>
                          </div>
                      </div>
                  </div>
              @endforeach
          </div>
          @empty
          <div>Empty ...</div>
      @endforelse
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-14
        • 1970-01-01
        相关资源
        最近更新 更多