Boilerplate Laravel 2 : Membuat CRUD Category

crud category laravel


Pada tutorial sebelumnya kita sudah memulai laravel dan membuat autentikasinya, Tutorial kali ini kita akan membuat CRUD Category 


Tutorial Sebelumnya - Boilerplate Laravel 1 : Memulai Dan Autentikasi


Pertama kita akan membuat database dengan cara membuat model category bersamaan dengan migrasi 


Membuat model category


Buka cmd dan masuk ke folder project kalian, ketikan code di bawah


C:\xampp\htdocs\blog>php artisan make:model Category -m


Maka otomatis akan membuat file model dan migrasi, silahkan buka file migrasi yg tdi di buat di dalam folder database/migration dan tambahkan field name, lihat script dibawah


    public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}


Setelah itu simpan dan jalan code dibawah ini 


C:\xampp\htdocs\blog> php artisan migrate


Maka akan ada tabel baru yg bernama categories


crud category

Membuat Controller

Selanjutnya kita akan membuat controller categories. silahkan buka cmd kalian dan lihat code dibawah 


  C:\xampp\htdocs\blog>php artisan make:controller CategoriesController --resource


Maka otomatis CategoriesController.php terbuat beserta fungsinya di dalam folder app/Http/Controllers, silahkan edit seperti dibawah ini.


CategoriesController.php


<?php

namespace App\Http\Controllers;

use App\Category;
use Illuminate\Http\Request;

class CategoriesController extends Controller
{

public function index()
{
return view('admin.categories.index')->with('categories', Category::all());
}

public function create()
{
return view('admin.categories.create');
}

public function store(Request $request)
{
$this->validate($request, [
"name" => "required|max:225"
]);

$category = new Category;

$category->name = $request->name;
$category->save();

return redirect()->route('categories');
}

public function show($id)
{

}

public function edit($id)
{
$category = Category::find($id);

return view('admin.categories.edit')->with('category', $category);
}

public function update(Request $request, $id)
{
$category = Category::find($id);
$category->name = $request->name;
$category->save();

return redirect()->route('categories');
}

public function destroy($id)
{

}
}


Membuat View

Sebelumnya kita buat dlu menu category di file app.blade.php di dalam folder resources/views/layouts, silahkan edit seperti dibawah ini 


    <div class="container">
<div class="row">
@if(Auth::check())
<div class="col-lg-4">
<ul class="list-group">
<li class="list-group-item">
<a href="{{ route('categories') }}">Category</a>
</li>
</ul>
</div>
@endif
<div class="col-lg-8">

@yield('content')

</div>
</div>
</div>


Setelah itu buat folder admin di dalam resources/views 


C:\xampp\htdocs\blog\resources\views> mkdir admin


Buat folder categories di dalam resources/views/admin


C:\xampp\htdocs\blog\resources\views\admin> mkdir categories


Buat folder includes di dalam resources/views/admin


C:\xampp\htdocs\blog\resources\views\admin> mkdir includes


Buat file errors.blade.php di dalam resources/views/admin/includes


errors.blade.php


@if(count($errors) > 0)
<ul class="list-group">
@foreach($errors->all() as $error)
<li class="list-group-item text-danger">
{{ $error }}
</li>
@endforeach
</ul>
@endif


Buat file index.blade.php di dalam resources/views/admin/categories


C:\xampp\htdocs\blog\resources\views\admin\categories> mkdir index.blade.php


index.blade.php



@extends('layouts.app')


@section('content')

<div class="panel panel-default">
<div class="panel-heading">
Categories
</div>

<div class="panel-body">
<div class="text-left">
<button class="btn btn-success" href="{{ route('category.create') }}>Add</button>
</div>
<table class="table table-hover">
<thead>
<th>Category</th>
<th>Action</th>
</thead>
<tbody>
@if($categories->count() > 0)
@foreach($categories as $category)
<tr>
<td>{{ $category->name }}</td>
</tr>
@endforeach
@else
<tr>
<th colspan='2' class='text-center'>Nothing Categories</th>
</tr>
@endif

</tbody>
</table>
</div>
</div>

@stop


Buat file create.blade.php di dalam resources/views/admin/categories


C:\xampp\htdocs\blog\resources\views\admin\categories> mkdir create.blade.php


create.blade.php


@extends('layouts.app')

@section('content')

@include('admin.includes.errors')

<div class="panel panel-default">
<div class="panel-heading">
Creat a new category
</div>
<div class="panel-body">
<form action="{{ route('category.store') }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="name">
</div>
<div class="form-group">
<div class="text-center">
<button class="btn btn-success" type="submit">Save</button>
</div>
</div>
</form>
</div>
</div>

@stop


Buat file edit.blade.php di dalam resources/views/admin/categories


edit.blade.php


@extends('layouts.app')

@section('content')

@include('admin.includes.errors ')

<div class="panel panel-default">
<div class="panel-heading">
Edit category {{ $category->name }}
</div>
<div class="panel-body">
<form action="{{ route('category.update', ['id'=>$category->id]) }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<label for="name">Name</label>
<input type="text" value="{{ $category->name }}" class="form-control" name="name">
</div>
<div class="form-group">
<div class="text-center">
<button class="btn btn-success" type="submit">Update</button>
</div>
</div>
</form>
</div>
</div>

@stop

Membuat Route

Selanjutnya kita akan membuat route untuk category, silahkan edit file web.php di dalam folder routes 


Route::get('/', function () {
return view('welcome');
});

Auth::routes();

Route::group(['prefix' => 'admin', 'middleware' => 'auth'],function(){

Route::get('/home', [
'uses' => 'HomeController@index',
'as' => 'home'
]);

Route::get('/categories', [
'uses' => 'CategoriesController@index',
'as' => 'categories'
]);
    Route::get('/category/create', [
'uses' => 'CategoriesController@create',
'as' => 'category.create'
]);

Route::post('/category/store', [
'uses' => 'CategoriesController@store',
'as' => 'category.store'
]);
    Route::get('/category/edit/{id}', [
'uses' => 'CategoriesController@edit',
'as' => 'category.edit'
]);

Route::get('/category/delete/{id}', [
'uses' => 'CategoriesController@destroy',
'as' => 'category.delete'
]);

Route::post('/category/update/{id}', [
'uses' => 'CategoriesController@update',
'as' => 'category.update'
]);
});


Pada tahap ini kita sudah bisa membuat CRUD sederhana, Jika berhasil maka akan ada tampilan seperti berikut


crud category



Sekian untuk Tutorial Boilerplate Laravel 2 : Membuat CRUD Category Semoga bermanfaat


Tutorial Selanjutnya - Boilerplate Laravel 3 : Membuat CRUD Post 

LihatTutupKomentar