61 lines
1.6 KiB
PHP
61 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Book;
|
|
use App\Models\Category;
|
|
use Illuminate\Http\Request;
|
|
|
|
class BookController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$filters = $request->only(['search']);
|
|
|
|
$query = Book::with('category');
|
|
|
|
if ($request->filled('search')) {
|
|
$query->where('judul', 'like', '%' . $request->search . '%');
|
|
}
|
|
|
|
$semuaBuku = $query->latest()->get();
|
|
|
|
// Memisahkan buku menjadi dua koleksi: online dan offline
|
|
[$bukuOnline, $bukuOffline] = $semuaBuku->partition(function ($buku) {
|
|
$tipe = $buku->tipe_akses;
|
|
return in_array('online', $tipe ?? []);
|
|
});
|
|
|
|
return view('admin.buku.index', [
|
|
'pageTitle' => 'Manajemen Buku',
|
|
'bukuOnline' => $bukuOnline,
|
|
'bukuOffline' => $bukuOffline,
|
|
'input' => $filters
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Menampilkan halaman form untuk menambah buku baru.
|
|
*/
|
|
public function create()
|
|
{
|
|
return view('admin.buku.create', [
|
|
'pageTitle' => 'Tambah Buku Baru',
|
|
'categories' => Category::all()
|
|
]);
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$buku = Book::with('category')->findOrFail($id);
|
|
|
|
return view('admin.buku.edit', [
|
|
'pageTitle' => 'Edit Buku: ' . $buku->judul,
|
|
'buku' => $buku,
|
|
'categories' => Category::all()
|
|
]);
|
|
}
|
|
|
|
// You might also want to implement store, update, destroy here later
|
|
} |