Postingan lainnya
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 :)
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));
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