Create Read Update Delete atau biasa disingkat CRUD, sesuai namanya adalah fungsi untuk menambahkan data, menghapus data, serta mengupdate data.

Ada berbagai teknik yang dapat digunakan dalam operasi CRUD dilaravel, yang diterapkan pada controller.

Contoh Sintax Read / Select pada Laravel.

use App\User;

// mendapatkan semua data
$users = User::orderBy('created_at','desc')->­g­et();
$users = User::orderBy('created_at','desc')->paginate(10);

// mendapatkan data berdasarkan id
$users = User::f­ind(2);

// mendapatkan data menggunakan where
$users = User::w­her­e('­id'­,2)­->g­et();

// mendapatkan data lebih dari satu where
$users = User::w­her­e(a­rra­y('id' => 2, 'email' => 'test@­tes­t.c­om'­))-­>get();

// mendapatkan dat lebih dari satu dengan kondisi OR
$users = User::w­her­e('­id'­,2)­->o­rWh­ere­('id', 3)->get();

// mendapatkan data kecuali data beberapa data pertama.
// Ada 5 data di tabel Anda dan Anda ingin melewatkan 2 data awal dan mendapatkan 3 data lainnya. 
$users = User::skip(2)->take(3)->get();

Cek data jika ada:

if (Absensi::where('id_member', '=', Auth::id())->whereDate('created_at', '=', date('Y-m-d'))->exists()) {
           return redirect()->back()->with('error', "Anda sudah absensi");
}

Mencari data menggunakan kondisi like :

$find = Pegawai::where('nama_pegawai','LIKE','%'.$search.'%')->orderBy('id', 'ASC')->get();

Menulis Raw query sql di Laravel:

$niminal = select('type', DB::raw('SUM(nominal) as nominal'))->groupBy('type')->get();

Contoh Function Create / Insert pada Laravel :

public function store(Request $request)
    {
    	$validator = $this->validate($request, [
            'nama' => 'required|min:5',
            'password' => 'required|min:5',
            'nohp' => 'numeric|min:5',
            'email' => 'email',
        ]);

        $m = new Member();

        $m->nama = $request->nama;
        $m->username = $request->username;
        $m->no_warga = $request->norumah;
        $m->password = Hash::make($request->password);
        $m->passuser = $request->password;
        $m->nohp = $request->nohp;
        $m->alamat = $request->alamat;
        $m->tempat = $request->tempat;
        $new_date = date('Y-m-d', strtotime($request->tanggal)); 
        $m->tgllahir = $new_date;
        $m->email = $request->email;

        $m->save();
        return redirect()->route('admin.member.index')->with('success', "berhasil simpan data");
    }

Multiple Insert:

foreach ($listarray as $key => $row) {
                $debit = Debitkredit::find($key); 
                $debit->nominal = $row;  
                $debit->save(); 
 }

Contoh Insert jika Id custom:

        $company = new Company;
        $getcompany = $company->orderBy('created_at','DESC')->first() !== null ? $company->orderBy('created_at','DESC')->first()['id_company'] : '0';

        $noUrut = (int) substr($getcompany, 3, 3);

        // bilangan yang diambil ini ditambah 1 untuk menentukan nomor urut berikutnya
        $noUrut++;

        $char = "PC-";
        $code = $char . sprintf("%03s", $noUrut);
        // echo $kodeBarang;
        $company->id_company = $code;
        $company->title = $request->nama;
        $company->category_id = $request->category_id;
        $company->departement_id = $request->departement_id;
        $company->purchase_date = Carbon::parse($request->purchase_date)->format('Y-m-d');
        $company->price = $request->price;
        $company->suplier_name = $request->suplier_name;
        $company->save();

Ohya, jika primarykey merupakan id custom gak perlu begitu juga , juga bisa. Tidak perlu pakai first(); . Akan tetapi pada modelnya perlu ditambahkan, perlu diberitahukan bahwa kita perlu primary key yang berbeda. Bukan id saja seperti biasanya. Jadi dalam model hanya perlu seperti ini :

class Company extends Model
{
    protected $table = 'companies';
    protected $primaryKey = 'id_company';
    public $incrementing = false;
    
    protected $fillable = [
        'id_company', 'title', 'category_id', 'purchase_date', 'price', 'suplier_name', 
    ];

    protected $dates = ['purchase_date'];
}

Contoh Update pada Laravel.

Edit, Member berasal dari model:

    public function edit(Member $id){
    	return view('admin::member.edit',['data' => $id]);
    }

Update Tanpa Find dengan menyebutkan nama model:

    public function update(Request $request, Alat $alat)
    {
        $validator = $this->validate($request, [
            'nama' => 'required|min:5',
            'jumlah' => 'required|integer',
        ]);

        $alat->nama = $request->nama;
        $alat->jumlah = $request->jumlah;

        $alat->save();
        return redirect()->back()->with('success', "berhasil update data");
    }

Update Dengan Find:
Maka di form action routenya seperti berikut {{ route('public.ronda.updatejimpitan', $member->id) }, harus menyebutkan id nya.

public function profileupdate($id, Request $request)
    {
        $update = Member::findOrFail($id);
         $this->validate($request, 
            [
                'nama' => 'required',
                'email' => 'required|email',
                'nohp' => 'numeric'
            ],
            [
                'nama.required' => 'nama harus diisi',
                'email.required'  => 'email harus diisi',
                'email.email'  => 'format email salah',
            ]
        );
        $update->nama = $request->nama;
        $update->email = $request->email;
        $update->nohp = $request->nohp;
        $update->no_warga = $request->norumah;
        $update->alamat = $request->alamat;
        $update->nohp = $request->nohp;
        $update->update();
        
        return redirect()->back()->with('success', "Berhasil Update Profile");
    }

Update Menggunakan whereIn, variable list adalah sebuah array:

Menu::whereIn('id_menu', $list)->update(array('active' => '1'));

Contoh Script Delete pada Laravel:

Delete satu data:

$post = Post::­fin­d(1);
$post-­>de­lete();

Delete multiple data:

$hapus = Alat::find($list)->each;
            
$hapus->delete();

Sekian.