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 6 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 6 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 6 tahun yang lalu

Login untuk ikut Jawaban