andriajah Tue Jun 2020 1 year ago

Bagaimana Cara Menyimpan Multiple Select Value pada Laravel

Saya akan menunjukkan kepada Anda contoh cara menyimpan multiple select values dalam laravel. saya hanya menjelaskan tentang cara menyimpan multiple select values dalam database menggunakan laravel. saya jelaskan hanya tentang laravel store multiple select values list dropdown pilih. kami akan membantu Anda memberikan contoh cara menyimpan multiple select values combobox dalam laravel.

Kadang-kadang kita perlu menyimpan nilai dropdown multi select dalam database menggunakan laravel. kita bisa mengambil tipe data json atau tipe data teks dari bidang itu sehingga kita bisa json_encode array kita dan menyimpannya ke dalam basis data.

Di sini, saya akan memberi Anda contoh yang sangat sederhana dan langkah demi langkah yang akan menjelaskan kepada Anda cara menyimpan beberapa nilai pilih dalam laravel menggunakan Accessors & Mutators. jadi mari kita lihat contoh di bawah dan di bawah pratinjau:

Pratinjau:

Langkah 1: Create Migration

Di sini, dalam contoh ini Anda perlu membuat tabel posting dengan nama, deskripsi, dan kolom cat. kolom cat memiliki tipe data teks atau json. seperti di bawah ini dibuat:

database/migrations/2020_06_13_102114_create_posts_table.php

<?php
  
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
  
class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->text('description');
            $table->text('cat');
            $table->timestamps();
        });
    }
  
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

Sekarang kita dapat menjalankan migrasi menggunakan perintah di bawah ini:

php artisan migrate

Langkah 2: Create Post Model

Di sini, kita akan membuat model Post dengan Accessors & Mutators, jadi ketika Anda menyimpan kategori maka itu akan membuat json_encode () dan ketika Anda mendapatkannya maka json_decode (). jadi mari kita lihat kode di bawah ini:

app/Post.php

<?php
  
namespace App;
  
use Illuminate\Database\Eloquent\Model;
  
class Post extends Model
{
    protected $fillable = ['name','cat','description'];
  
    /**
     * Set the categories
     *
     */
    public function setCatAttribute($value)
    {
        $this->attributes['cat'] = json_encode($value);
    }
  
    /**
     * Get the categories
     *
     */
    public function getCatAttribute($value)
    {
        return $this->attributes['cat'] = json_decode($value);
    }
}

Langkah 3: Create Routes

Di sini, kita akan dengan mudah membuat dua route satu mendapatkan route untuk mengakses tampilan dan route posting lain untuk menyimpan data ke dalam basis data. jadi mari kita tambahkan dua route:

routes/web.php

Route::get('postCreate','PostController@postCreate');
Route::post('postData','PostController@postData')->name('postData');

Langkah 4: Create Controller

Di sini, kita akan sederhana membuat PostController dengan dua metode yang menetapkan route. jadi mari kita tambahkan dua route:

app/Http/Controllers/PostController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Post;
  
class PostController extends Controller
{
    public function postCreate()
    {
        return view('post');
    }
  
    public function postData(Request $request)
    {
        $input = $request->all();
  
        Post::create($input);
  
        dd('Post created successfully.');
    }
}

Langkah 5: Create Blade File

Pada langkah ini, kita akan membuat file post.blade.php file blade di sana kita menambahkan kode form dengan kotak dropdown multi select. jadi mari kita letakkan kode di bawah ini:

resources/views/post.blade.php

<html>
<head>
  <title>How to Store Multiple Select Values in Database using Laravel? - Medikre.com</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css">
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-md-8 offset-2 mt-5">
                <div class="card">
                    <div class="card-header bg-info">
                      <h6 class="text-white">How to Store Multiple Select Values in Database using Laravel? - Medikre.com</h6>
                    </div>
                    <div class="card-body">
                        <form method="post" action="{{ route('postData') }}" enctype="multipart/form-data">
                            @csrf
                            <div class="form-group">
                                <label>Name</label>
                                <input type="text" name="name" class="form-control"/>
                            </div>  
                            <div class="form-group">
                                <label><strong>Description :</strong></label>
                                <textarea class="ckeditor form-control" name="description"></textarea>
                            </div>
                            <div class="">
                                <label><strong>Select Category :</strong></label><br/>
                                <select class="form-control" name="cat[]" multiple="">
                                  <option value="php">PHP</option>
                                  <option value="react">React</option>
                                  <option value="jquery">JQuery</option>
                                  <option value="javascript">Javascript</option>
                                  <option value="angular">Angular</option>
                                  <option value="vue">Vue</option>
                                </select>
                            </div>
                              
                            <div class="text-center" style="margin-top: 10px;">
                                <button type="submit" class="btn btn-success">Save</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>    
</body>
  
</html> 

Sekarang kita siap untuk aplikasi.

Anda dapat menjalankan aplikasi menggunakan perintah di bawah ini:

php artisan serve

Saya harap ini dapat membantu Anda ...

multiple select option laravel