Untuk Laravel 5.5 bisa dilihat di Contoh Script PHP CRUD di Laravel 5.5

Disini kita akan menggunakan artisan untuk mempercepat pembuatan database dan controller.

Sebagai contoh kita akan membuat tabel mobil jalankan artisan

php artisan make:migration tabel_mobil
## output
Created Migration: 2015_04_08_050530_tabel_mobil

file yang baru dibuat berada di database/migrations. Edit file tersebut ubah menjadi

<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
 
class TabelMobil extends Migration {
 
	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
		Schema::create('mobil', function(Blueprint $table)
		{
			$table->increments('id');
			$table->string('NOPOL');
			$table->string('merek_mobil');
			$table->timestamps();
		});		
	}
 
	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
		Schema::drop('mobil');
	}
 
}

gunakan artisan untuk membuat tabel diatas.

php artisan migrate 
## output
Migrated: 2015_04_08_050530_tabel_mobil

Buat controller baru dengan nama MobilController

php artisan make:controller MobilController
## output
Controller created successfully.

Buat routes untuk controller yang baru dibuat, tambahkan

Route::resource('mobil','MobilController');

di file app/Http/routes.php

Buat model

php artisan make:model Mobil --no-migration

Sebenarnya pembuatan Model dan Tabel database diatas bisa di persingkat dengan (php artisan make:model Mobil). Tapi karna kebiasaan :P jadi masih pake cara diatas.
di file composer.json tambahkan

 "illuminate/html": "5.*"

dibawah

"laravel/framework": "5.0.*",

lalu update dengan cara

composer update

Untuk tampilan web yang akan kita buat, semuanya diletakkan di folder resources/views/mobil buat terlebih folder tersebut

## cara ini khusus di linux
mkdir resources/views/mobil
## buat 4 buat file untuk UI CRUD
touch create.blade.php  edit.blade.php  index.blade.php  show.blade.php

di resources/views tambahkan file app.blade.php (resources/views/app.blade.php) yang isinya

<!doctype html>
<html lang="en">
 
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Aplikasi</title>
	<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
 
<body>
	<div class="container">
		@yield('content')
	</div>
 
 
	@yield('footer')
 
</body>

file diatas adalah template yang akan digunakan untuk aplikasi yang akan kita buat.

Semua file yang dibutuhkan sudah selesai, sekarang bagian coding. Edit file model Mobil.php (app/Mobil.php) ubah menjadi

<?php namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
class Mobil extends Model {
 
    protected $table = 'mobil';
    protected $fillable = [
    'NOPOL', 
    'merek_mobil',
    ];	
 
}

Edit file MobilController.php tambahkan dibagian atas

use App\Mobil;

karena kita belum punya data, jadi kita akan membuat form untuk menambah data terlebih dahulu, di MobilController.php sesuaikan dengan script dibawah

	public function index()
	{
		$mobil = Mobil::all();
		return $mobil;
	}
	public function create()
	{
		return view('mobil.create');
	}
	public function store()
	{
		$input = Request::all();
		Mobil::create($input);
		return redirect ('mobil');
	}

edit file create.blade.php sehingga menjadi

@extends('app')
 
@section('content')
	<h1>Tambah Data</h1>
	<hr>
 
	{!! Form::open(['url' => 'mobil']) !!}
		<div class="form-group">
			{!! Form::label('NOPOL','Nomor Polisi :') !!}
			{!! Form::text('NOPOL',null, ['class' => 'form-control']) !!}
			{!! Form::label('merek_mobil','Merek Mobil :') !!}
			{!! Form::text('merek_mobil',null, ['class' => 'form-control']) !!}				
			{!! Form::submit('Tambah Data') !!}	
			{!! Form::close() !!}				
		</div>
 
@stop

Sampai tahap ini, coba akses web yang baru dibuat di alamat http:////mobil/create contoh di tempat saya
tambah data mobil
Coba input beberapa data :), setelah mengklik Tambah Data akan otomatis diarahkan ke http:////mobil
index mobil

Untuk menambahkan fungsi edit dan delete (hapus), edit kembali MobilController.php

<?php namespace App\Http\Controllers;
 
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Mobil;
use Illuminate\Http\Request;
 
class MobilController extends Controller {
 
	/**
	 * Display a listing of the resource.
	 *
	 * @return Response
	 */
	public function index()
	{
		$mobil = Mobil::all();
		return view('mobil.index', compact('mobil'));
	}
 
	/**
	 * Show the form for creating a new resource.
	 *
	 * @return Response
	 */
	public function create()
	{
		return view('mobil.create');
	}
 
	/**
	 * Store a newly created resource in storage.
	 *
	 * @return Response
	 */
	public function store()
	{
		$input = Request::all();
		Mobil::create($input);
		return redirect ('mobil');
	}
 
	/**
	 * Display the specified resource.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function show($id)
	{
		//
	}
 
	/**
	 * Show the form for editing the specified resource.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function edit($id)
	{
		$mobil = Mobil::findOrFail($id);
		return view('mobil.edit', compact('mobil'));
	}
 
	/**
	 * Update the specified resource in storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function update(Request $request, $id)
	{
		$mobil = Mobil::findOrFail($id);
		$mobil->update($request->all());
		return redirect('mobil');
	}
 
	/**
	 * Remove the specified resource from storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function destroy($id)
	{
		$mobil = Mobil::findOrFail($id);
		$mobil->delete();
		return redirect('mobil');
 
	}
 
}

index.blade.php

@extends('app')
 
@section('content')
		<h1>Data Mobil</h1> <hr>
 
<table class="table table-bordered">
	<thead>
		<th>Nomor Polisi</th>
		<th>Merek Mobil</th>
		<th>Aksi</th>
	</thead>
	<tbody>
		@foreach ($mobil as $data)
 
		<tr>
			<td><a href="{{ url('mobil/'. $data->id . '/edit') }}">{{ $data->NOPOL }}</a></td>
			<td>{{ $data->merek_mobil }}</td>			
			<td>                
				{!! Form::open(['method' => 'DELETE', 'route' => ['mobil.destroy', $data->id]]) !!}
				{!! Form::submit('Hapus') !!}
				{!! Form::close() !!}
			</tr>
		</tbody>
		@endforeach
	</table>
 
 
@stop

edit.blade.php

@extends('app')
 
@section('content')
	<h1>Edit Data <small>{{ $mobil->NOPOL }}</small></h1>
	<hr>
 
{!! Form::model($mobil, ['method' => 'PATCH', 'action' => ['MobilController@update', $mobil->id]]) !!}
    <div class="form-group">
        {!! Form::label('NOPOL', 'Nomor Polisi :') !!}
        {!! Form::text('NOPOL', null, array('class' => 'form-control')) !!}
    </div>
 
    <div class="form-group">
        {!! Form::label('merek_mobil', 'Merek Mobil :') !!}
        {!! Form::text('merek_mobil', null, array('class' => 'form-control')) !!}
    </div>
 
    {!! Form::submit('Edit data', array('class' => 'btn btn-primary')) !!}
 
{!! Form::close() !!}
 
@stop

data mobil edit hapus

Join the Conversation

12 Comments

Your email address will not be published. Required fields are marked *

  1. View [App] not found. (View: C:xampphtdocslaravelresourcesviewsmobilindex.blade.php)

    kalau view app not found gimana ?

  2. FatalErrorException in 90206b3b9358f204a4dd837f609415c7 line 6: Class ‘Form’ not found

    masalanya di “illuminate/html”: “5.*” dan sudah saya coba install tapi proses installasi nya erro.
    kenapa yah min.

  3. FatalErrorException in 90206b3b9358f204a4dd837f609415c7 line 6: Class ‘Form’ not found
    kenapa ya gan

      1. “illuminate/html”: “5.*” sudah saya jalankan tapi masih
        FatalErrorException in 90206b3b9358f204a4dd837f609415c7 line 6: Class ‘Form’ not found

        apanya ya?

  4. di bagan create.blade.php, {!! Form::open([‘url’ => ‘mobil’]) !!} merefernsikan ke MobilController@index.
    kalau form nya di refensikan ke fungsi store gimana ya bang?

  5. pak, saya sudah membuat file untuk table, tp setelah saya ketik php artisan migrate, malah muncul seperti ini : ‘SQLSTATE[HY000] [1045] Access denied for user ‘homestead’@’localhost’ (using password: YES)’

    apa yg salah ya

    localhost di database.php sudah sy ganti menjadi 127.0.0.1. masih tetap tdk bisa

    1. ganti 127.0.0.1 jadi IP vagrant (homestead) nya.

      user homestead punya akses ke database ga? coba login manual jalan ga?