Cara Menyimpan Multiple Select Value | Laravel

Selamat datang kembali di website asepit yang selalu memberikan informasi mengenai dunia Teknologi khususnya pada bidang Komputer, Pemrograman, dan juga Jaringan. Bagaimana kabar kalian semua mudah - mudahan dalam keadaan sehat wal afiat dan selalu dilancarkan rezekinya, Pada kesempatan kali ini saya akan membahas mengenai cara menyimpan data multiple select value pada Laravel. Oke kita langsung saja ke langkah - langkah nya

1. Instal projek laravel / bisa langsung saja diterapkan pada projek yang sedang tahap pengembangan kita

composer create-project laravel/laravel multiple_select -vvv

Lanjut ke konfigurasi Database

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=select-multiple
DB_USERNAME=username
DB_PASSWORD=password

2. Kemudian buat akses login dengan menjalankan perintah berikut

php artisan make:auth

Kemudian migrate database

php artisan migrate:refresh

3. Tambah pada migration user dengan kolom Colors dengan type data json atau juga bisa dengan type data integer

public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->json('colors');
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }
public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->integer('colors');
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

Tambahkan juga pada model User dan lakukan migrate ulang

protected $fillable = [
    'name', 'email', 'password', 'colors'
];
php artisan migrate:refresh

4. Tambahkan route baru untuk langkah pengujiannya

Route::get('create', 'HomeController@create')->name('home.create');
Route::post('form/store', 'HomeController@store')->name('home.store');

Lanjut untuk penambahan method create & store pada HomeController

* Type data Json

public function create()
{
   return view('create');
}

public function store(Request $request)
{
   $user = new User();
   $user->name = $request->name;
   $name = strtolower($request->name);
   $user->email = str_replace(' ', '',$name."@gmail.com");
   $user['colors'] = json_encode($request->colors);
   $user->password = bcrypt('12345678');
   $user->save();

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

* Type data Integer

public function create()
{
   return view('create');
}

public function store(Request $request)
{
   foreach ($request->colors as $row => $val) {
       $user = new User();
       $user->name = $request->name;
       $name = strtolower($request->name);
       $user->email = str_replace(' ', '',$name."@gmail.com");
       $user->colors = $request->colors[$row];
       $user->password = bcrypt('12345678');
       $user->save();
   }

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

5. Pada view Create nya kurang lebih seperti ini

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header text-center">Implement Multiple Select Value</div>
                <div class="card-body">
                    <form action="{{ route('home.store') }}" method="post">
                        @csrf
                        <div class="form-group">
                            <div class="col-sm-10">
                                <label for="">Nama Pengguna</label>
                                <input type="text" name="name" class="form-control">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-sm-10">
                                <label for="">Warna Favorit *</label>
                                <select name="colors[]" class="form-control select2" multiple>
                                    <option value="" disabled selected>Silahkan Pilih Warna</option>
                                    <option value="1">Hitam</option>
                                    <option value="2">Putih</option>
                                    <option value="3">Merah</option>
                                    <option value="4">Hijau</option>
                                    <option value="5">Kuning</option>
                                </select>
                            </div>
                        </div>
                        <div class="text-right">
                            <button type="submit" class="btn btn-success">Simpan</button>
                            <a href="{{ route('home') }}" class="btn btn-danger">Kembali</a>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

6. Untuk hasil dari penyimpanan data pada database nya kurang lebih menjadi seperti ini

 

 

Mungkin hanya itu untuk pembahasan kali ini, saya mohon ma'af bila dalam penyampaian serta penulisan terdapat sebuah kesalahan. Jangan lupa ikuti juga platform ASEP IT lainnya dibawah ini, saya cukupkan sekian dan Terima Kasih...

 

Website klik disini
Youtube klik disini
Fans Page klik disini

Related Articles

Comments