Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Cara menampilkan data seperti website artikel atau berita di laravel 5.4

Saya memiliki kendala di laravel, saat saya ingin menampilan konten seperti website portal berita atau artikel yang bentuk layout/template seperti tabel yang akan menampilkan di baris pertama sejumlah 4 data, apabila sudah 4 maka akan membuat baris baru di bawahnya. Lebih tepatnya cara menampilkan data secara horizontal yang akan membuat baris baru jika sudah melebihi batas yang telah ditentukan.

ini controller seminar


<?php

namespace App\Http\Controllers\Site;

use App\Models\Seminar;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class SeminarController extends Controller
{
    public function index()
    {
        $seminars = Seminar::all()->take(4);
        return view('seminar', ['seminars' => $seminars]);
    }
}

ini model seminar

 <?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Seminar extends Model
{
    protected $primaryKey = 'id_seminar';
    public $timestamps = false;
    public function kategori()
    {
        return $this->belongsTo('App\Models\Kategori', 'id_kategori');
    }

    public function organisasi()
    {
        return $this->belongsTo('App\Models\Organisasi', 'id_organisasi');
    }
}

ini view seminar

 @extends('layouts.app')

@section('content')
  <div class="container">
      <div class="main">
        <div class="container">
          <div class="row">

            <div class="col-md-4">
              <h1>Seminar</h1>
            </div>
          </div>

          <div class="row margin-bottom-10">

            @foreach ($seminars as $seminar)
            <div class="col-md-3 col-sm-6 col-xs-12">
              <a href="#" class="gambarseminar">
                  <img class="img-responsive img-thumbnail" src="{{asset('storage/seminar/'.$seminar->gambar)}}" alt="Generic placeholder image">
                </a>
              <h5>
                  <a href="#" class="judul">{{ $seminar->judul }}</a>
                </h5>
              <h6>Organized by : {{ $seminar->organisasi->nama }}</h6>
              <h6>{{ $seminar->tgl_seminar }}</h6>
              <div class="tempat">
                <i class="fa fa-map-marker"></i> {{ $seminar->tempat }}
              </div>
            </div>
            @endforeach

          </div>
        </div>
      </div>
  </div>
@endsection

bagaimana ya caranya, saya cari gak ketemu :D terima kasih sebelumnya :)

avatar adityars
@adityars

14 Kontribusi 6 Poin

Diperbarui 7 tahun yang lalu

2 Jawaban:

bisa pake 2 metode. satu melalui viewnya satu lagi dengan cara array chunk.

# Kalau mau pake view, ini lebih mudah fokus hanya pada grid bootstrap saja. Caranya agan sisa atur di dalam row yg di foreach berdasarkan jumlah 1 barisnya. Seperti kode agan di atas 12/4 = 3 (col-md-3), dst. Memang hasil dari kode agan di atas seperti apa? mungkin bisa tampilkan screenshotnya.

# Kalau mau pake array chunk


// Misalnya kita ambil semua result, atau bisa juga dibatasi seperti di atas
$seminars = Seminar::all()->take(20);
// coba die dump satu persatu hasil berikut dan lihat perbandingannya
// Tidak dichunk/dibagi2
dd($seminars);
// Result yg dichunk/dibagi2
dd($seminars->chunk(4));

avatar onirusama
@onirusama

265 Kontribusi 184 Poin

Dipost 7 tahun yang lalu

Jawaban Terpilih

Sudah solved oleh saya :D terima kasih mas sudah response hehe

saya bermain di viewnya untuk pengaturannya ini code nya yang ingin melihat

controllernya ada sedikit saya rubah

controller

 <?php

namespace App\Http\Controllers\Site;

use App\Models\Seminar;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class SeminarController extends Controller
{
    public function index()
    {
        $seminars = new Seminar;
        return view('seminar', ['seminars' => $seminars]);
    }

    public function show($id)
    {
        # code...
    }
}

view

@extends('layouts.app')

@section('content')
  <div class="container">
      <div class="main">
        <div class="container">

          <div class="row">
            <div class="col-md-4">
              <h1>Seminar</h1>
            </div>
          </div>

          @php
            $i=0;
            $jumlahData = 4;
          @endphp

          @foreach ($seminars->all() as $seminar)
            @php
              if ($i++ % $jumlahData == 0) {
                echo "<div class='row margin-bottom-10'>";
              }
            @endphp

            <div class="col-md-3 col-sm-6 col-xs-12">
              <a href="#" class="gambarseminar">
                  <img class="img-responsive img-thumbnail" src="{{asset('storage/seminar/'.$seminar->gambar)}}" alt="Generic placeholder image">
              </a>
              <h5>
                <a href="#" class="judul">{{ $seminar->judul }}</a>
              </h5>
              <h6>Organized by : {{ $seminar->organisasi->nama }}</h6>
              <h6>{{ $seminar->tgl_seminar }}</h6>
              <div class="tempat">
                <i class="fa fa-map-marker"></i> {{ $seminar->tempat }}
              </div>
            </div>

            @php
              if ($i % $jumlahData == 0 || $i == $seminars->count()) {
                  echo "</div>";
              }
            @endphp

          @endforeach
        </div>
      </div>
  </div>
@endsection


avatar adityars
@adityars

14 Kontribusi 6 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban