Halo sobat koder! Kali ini kita akan belajar membuat CRUD (Create, Read, Update, Delete) pada framework Laravel 5.3. Jika kalian sudah belajar PHP sebelumnya, pastinya memahami bahwa CRUD adalah salah satu elemen penting untuk membuat aplikasi berbasi web. Nah, kali ini kita akan menggunakan framework Laravel untuk membuat aplikasi CRUD sederhana.
Sebelum memulai membuatnya, diharapkan sobat koder sudah paham penggunaan framework Laravel ya. Paling tidak sudah paham dasar routing dan mengerti penggunaan konsep MVC. Nah kali ini, kita akan mulai membuat databasenya terlebih dahulu.
Mempersiapkan Migration untuk Database
Untuk membuat aplikasi CRUD sederhana ini, kita memerlukan sebuah database supaya nantinya bisa kita olah melalui aplikasi. Pertama jalankan perintah untuk membuat model:
php artisan make:model Post -m
Perintah diatas digunakan untuk membuat sebuah model bernama
Post
. Kemudian supaya model kita memiliki migration sekaligus, kita bisa menambahkan atribut -m
. Hasilnya kurang lebih akan seperti berikut.Kemudian buka file migration yang telah kita buat tadi pada folder
database/migrations/
. Kemudian tambahkan kode berikut pada function up()
: public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('post');
$table->timestamps();
});
}
Agar sederhana, disini kita hanya membuat 2 kolom tambahan yaitu
title
dan post
. Kemudian kita jalankan perintah migrate pada terminal untuk menjalankan migrationnya.php artisan migrate
Hasilnya kurang lebih akan seperti berikut:
Persiapan untuk database sudah selesai, sekarang saatnya kita membuat codingnya 😉
Mengatur Routing
Pertama, kita atur dahulu routingnya supaya dapat mengakses controller kita. Buka file
routes/web.php
. Masukan kode berikut:Route::resource('post', 'PostController');
Disini kita cukup menggunakan
Route::resource
saja untuk mengatur seluruh kebutuhan get dan post pada aplikasi kita nantinya. Jadi tidak perlu membuat satu persatu untuk method indeks, show, create, edit dan lainnya. Silahkan cek routenya dengan perintah berikut:php artisan route:list
Hasilnya akan seperti berikut:
Membuat Model
Supaya nantinya model kita dapat diisi data menggunakan cara mass assignment, maka ada sedikit perubahan yang harus dilakukan. Silahkan lihat kode berikut:
class Post extends Model
{
protected $fillable = ['title', 'post'];
}
Membuat Controller
Kita memerlukan beberapa method pada controller untuk membuat CRUD berfungsi. Laravel sudah dibuat untuk memudahkan hal ini. Caranya, silahkan ketikan perintah berikut pada terminal:
php artisan make:controller -m Post PostController
Disini kita menambahkan fungsi
-m Post
supaya controller kita nantinya akan langsung memanggil model Post
secara default.Kemudian ketik code berikut pada controller yang telah kita buat tadi di folder
app/Http/Controllers
Index
public function index()
{
return view('post.index', ['posts' => Post::all()]);
}
Create
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required',
'post' => 'required',
]);
Post::create($request->all());
return redirect()->route('post.index');
}
Edit
public function edit($id)
{
return view('post.edit', ['post' => Post::find($id)]);
}
Update
public function update(Request $request, $id)
{
Post::find($id)->update($request->all());
return redirect()->route('post.index');
}
Delete
public function destroy($id)
{
Post::find($id)->delete();
return redirect()->route('post.index');
}
Membuat View
Agar tampilannya sederhana, kita cukup membuat 2 buah view untuk aplikasi CRUD sederhana ini. Kita akan menaruh form create pada halaman ini sekaligus. Berikut codingnya:
Index
<div class="error">
{{ Html::ul($errors->all()) }}
</div>
{!! Form::open(['route' => 'post.store']) !!}
<div class="form-input">
{{ Form::label('title', 'Title') }}
{{ Form::text('title') }}
</div>
<div class="form-input">
{{ Form::label('post', 'Post') }}
{{ Form::textarea('post') }}
</div>
<div class="form-input">
{{ Form::submit('Submit', ['class' => 'btn']) }}
</div>
{!! Form::close() !!}
@foreach ($posts as $post)
<div class="post">
<h4 class="post-title">{{ $post->title }}</h4>
<p class="post-body">{{ $post->post }}</p>
<div class="post-footer">
<a href="{{ route('post.edit', $post->id) }}" class="btn">Edit</a>
<a href="{{ route('post.delete', $post->id) }}" class="btn">Hapus</a>
</div>
</div>
@endforeach
Edit
<div class="error">
{{ Html::ul($errors->all()) }}
</div>
{{ Form::model($post, array('route' => array('post.update', $post->id), 'method' => 'PUT')) }}
<div class="form-input">
{{ Form::label('title', 'Title') }}
{{ Form::text('title') }}
</div>
<div class="form-input">
{{ Form::label('post', 'Post') }}
{{ Form::textarea('post') }}
</div>
<div class="form-input">
{{ Form::submit('Submit', ['class' => 'btn']) }}
</div>
{!! Form::close() !!}
File CSS
File ini sebenarnya tidak berpengaruh pada aplikasi, hanya untuk mempercantik tampilan saja.
body {
font-family: "Raleway", sans-serif;
font-weight: 100;
font-size: 16px;
color: #000;
background-color: #f5f5f5;
}
form {
border: 1px solid #ddd;
border-radius: 3px;
max-width: 500px;
margin-right: auto;
margin-left: auto;
background-color: #f8f8f8;
}
label {
color: #000;
display: block;
margin-bottom: 5px;
}
.form-input {
display: block;
padding: 10px 10px;
}
.form-input input {
width: 100%;
height: 25px;
border-radius: 3px;
border:1px solid #ddd;
}
.form-input textarea {
width: 99%;
height: 40px;
border-radius: 3px;
border:1px solid #ddd;
}
.form-input .btn {
height: 30px;
font-family: "Raleway";
font-weight: 600;
}
.post {
display: block;
width: 500px;
margin: 10px auto;
border: 1px solid #ddd;
border-radius: 3px;
background-color: #f9f9f9;
}
.post .post-title {
margin: 0;
padding: 10px 10px;
}
.post .post-body {
margin: 0;
padding: 0px 10px 10px 10px;
}
.post .post-footer {
margin: 0;
padding: 0px 10px 10px 10px;
}
.post .post-footer .btn {
background-color: #ddd;
padding: 5px 7px;
border-radius: 3px;
text-decoration: none;
font-weight: 600;
color: #000;
font-size: 12px;
}
Hasil
Berikut adalah hasil dari programnya
Akhir Kata
Sangat mudah bukan proses pembuatan CRUD di laravel. Hal ini karena memang Laravel dibuat untuk memudahkan developer dalam mengembangkan aplikasinya. Kodenya pun jadi mudah dipahami dan sangat rapi karena telah menggunakan konsep MVC. Nah sekian tutorial CRUD pada Laravel untuk pemula kali ini. Semoga mudah dipahami dan dapat bermanfaat bagi sobat koder semuanya..
0 Komentar