Crud Laravel 5 – Migration Model Controller dan Template

Di dalam project CRUD Laravel 5 (simplecrud) kita akan membuat CRUD data kecamatan dan data desa. Masing-masing desa terdapat foreign key dari primary key data kecamatan. Secara keseluruhan langkah-langkah yang perlu kita lakukan adalah :

  1. Membuat migration untuk tabel kecamatan dan tabel desa
    php artisan
    php artisan make:migration create_kecamatan_table --create=tbl_kecamatan
    php artisan make:migration create_desa_table --create=tbl_desa
  2. Edit file migration kecamatan dan desa di dalam folder database/migrations
    <?php
    
    use Illuminate\Support\Facades\Schema;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class CreateKecamatanTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('tbl_kecamatan', function (Blueprint $table) {
                $table->increments('id');
                $table->string('kode');//kode kecamatan
                $table->string('nama');//nama kecamatan
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('tbl_kecamatan');
        }
    }
    
    <?php
    
    use Illuminate\Support\Facades\Schema;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class CreateDesaTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('tbl_desa', function (Blueprint $table) {
                $table->increments('id');
                $table->string('kode');//ada kodenya juga
                $table->string('nama');//nama desanya juga
                $table->integer('kecamatan_id')->unsigned();//foreign key ke table kecamatan
                $table->foreign('kecamatan_id')->references('id')->on('tbl_kecamatan');
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('tbl_desa');
        }
    }
    

     

  3. Setelah migration kita buat, selanjutnya kita migrate untuk membuat tabel tbl_kecamatan dan tbl_desa
    php artisan migrate
  4. Buat model untuk table kecamatan dan table desa
    php artisan make:model Kecamatan
    php artisan make:model Desa
  5. Edit model yang telah kita buat tadi
    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Kecamatan extends Model
    {
        protected $table = 'tbl_kecamatan';
        protected $fillable = ['kode','nama'];
    }
    
    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Desa extends Model
    {
        protected $table = 'tbl_desa';
        protected $fillable = ['kode','nama','kecamatan_id'];
    
        public function kecamatan(){//kita gunakan eager loading nanti
            return $this->belongsTo('App\Kecamatan');
        }
    }
    
  6. Buat controller untuk kecamatan dan desa
    php artisan make:controller Admin/CrudKecamatan --resource
    php artisan make:controller Admin/CrudDesa --resource
  7. Buat route untuk membatasi hanya user yang mempunyai level akses admin yang bisa melakukan CRUD dengan mengedit file routes/web.php dan tambahkan skrip berikut :
    Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {//semua yang punya role admin lanjut kesini
        Route::get('/', 'Admin\[email protected]');
        Route::resource('kecamatan','Admin\CrudKecamatan');
        Route::resource('desa','Admin\CrudDesa');
    });
  8. Kemudian edit file views/layouts/app.blade.php dan tambahkan menu untuk mengakses kecamatan dan desa dengan menambahkan skrip berikut :
    <!-- Left Side Of Navbar -->
    <ul class="nav navbar-nav">
      @if(\Entrust::hasRole('admin'))
      <li><a href="{{ route('kecamatan.index') }}">Kecamatan</a></li>
      <li><a href="{{ route('desa.index') }}">Desa</a></li>
      @endif
    </ul>

Setelah migration, model, controller dan juga template telah kita buat, selanjutnya kita akan membuat views untuk form kecamatan dan desa.

CRUD LARAVEL (simplecrud)

  1. Create project dan install package
  2. Sistem otentikasi laravel 5 menggunakan zizaco/entrust
  3. Migration, model, controller dan template laravel 5
  4. Controller Resource
  5. Deploy Laravel ke Layanan Hosting

File project bisa dilihat diĀ https://github.com/fadlur/laravel-simplecrud

Tinggalkan Balasan

This site uses Akismet to reduce spam. Learn how your comment data is processed.