Pembahasan mengenai Eloquent ini merupakan lanjutan dari pembahasan mengenai Model pada artikel sebelumnya. Jika anda perhatikan pada source model di artikel sebelumnya, Model termasuk dalam bagian Eloquent. Pada artikel kali ini akan dijelaskan bagaimana menggunakan eloquent ini untuk melakukan manipulasi pada database seperti insert, update, delete dan mengambil data.
#MENGAMBIL DATA
<?php
use App\Flight;
$flights = Flight::all();
$flights = Flight::where('active', 1)
->orderBy('name', 'desc')
->take(10)
->get();
$flight = Flight::find(1);
$flight = Flight::where('active', 1)->first();
$flights = Flight::find([1, 2, 3]);
$count = Flight::where('active', 1)->count();
$max = Flight::where('active', 1)->max('price');
Setelah membuat model maka kita bisa menggunakan Model tersebut untuk mendapatkan data dari database. Yang perlu diingat seperti penjelasan pada artikel sebelumnya adalah 1 model mewakili 1 tabel dalam database. Contoh kode di atas adalah beberapa contoh bagaimana menggunakan eloquent untuk mendapatkan data dari database seperti ::all, ::find, dll.
Contoh kode di atas hanya merupakan pengenalan dasar bagaimana menggunakan eloquent ini. Bagamana penerapannya dalam Controller sesungguhnya akan dijelaskan pada artikel selanjutnya. Untuk mendapatkan data, yang pertama anda harus menggunakan use Model. Kode di atas menggunakan contoh model Flight yang terletak pada direktori app\. Jika model yang anda gunakan terletak di dalam direktori app\Model maka perintah yang digunakan adalah use App\Model\Flight.
Keterangan :
Perintah ::all digunakan untuk mendapatkan semua record pada tabel Flight.
Perintah ::where digunakan sebagai kondisi pada query yaitu tampilkan semua record dengan kondisi field active = 1.
Perintah orderBy digunakan untuk melakukan sorting atau order by field name secara descending
Perintah find digunakan untuk mencari record dengan id sesuai inputan (dalam contoh adalah 1)
Perintah first digunakan untuk mencari record sesuai dengan kondisi yang ditemukan pertama kalinya.
Perintah find([,,,]) digunakan untuk mengambil data record dengan id sesuai inputan dalam array.
Perintah count() digunakan untuk mendapatkan jumlah record sesuai dengan kondisi querynya.
Perintah max('nama_field') digunakan untuk mendapatkan record dengan kondisi max dari nama_field yang diisikan sebagai kondisi dari query tersebut.
Perintah-perintah pada contoh kode di atas hanya sebagian kecil dari perintah-perintah yang disediakan dalam query builder laravel ini. Untuk informasi lebih lengkapnya anda bisa mencari artikel mengenai query builder dari laravel yang juga mungkin akan dibahas dalam blog ini ke depannya.
#INSERT, UPDATE, DELETE DATA
Eloquent juga dapat digunakan untuk melakukan modifikasi data seperti insert, update dan delete.#INSERT
<?php
namespace App\Http\Controllers;
use App\Flight;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class FlightController extends Controller
{
/**
* Create a new flight instance.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
// Validate the request...
$flight = new Flight;
$flight->name = $request->name;
$flight->save();
}
}
Contoh kode di atas adalah isi dari file FlightController.php yang mempunyai function store untuk melakukan insert data ke database. Cara untuk melakukan insert adalah dengan menggunakan perintah new Model (dalam contoh ini model Flight). Variabel $request di sini digunakan untuk menampung semua request input yang diinput dalam form. Dan terakhir adalah menggunakan perintah save() untuk melakukan penyimpanan data ke dalam database.
#UPDATE
<?php
namespace App\Http\Controllers;
use App\Flight;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class FlightController extends Controller
{
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
// Validate the request...
$flight = Flight::find($id);
$flight->name = $request->name;
$flight->save();
}
}
Untuk melakukan update tidak menggunakan new seperti pada saat insert namun menggunakan find untuk mencari record mana yang akan diupdate. Langkah-langkah selanjutnya masih sama seperti saat melakukan insert.Kode di atas adalah untuk melakukan update pada 1 record saja. Bagaimana cara untuk melakukan update pada beberapa record sekaligus dapat dilihat pada contoh kode di bawah ini
Flight::where('active', 1)
->where('destination', 'San Diego')
->update(['delayed' => 1]);
Anda bisa menggunakan where untuk memberikan kondisi record apa saja yang akan diupdate dan gunakan perintah update untuk mengupdate field tertentu.
#DELETE
<?php
namespace App\Http\Controllers;
use App\Flight;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class FlightController extends Controller
{
/**
* Remove the specified resource from storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function destroy(Request $request, $id)
{
// Validate the request...
$flight = Flight::find($id);
$flight->delete();
}
}
Cara untuk melakukan delete mirip dengan cara untuk melakukan update yaitu dengan menggunakan perintah find untuk menentukan record mana yang akan didelete. Dan kemudian gunakan perintah delete() untuk menghapus data dari database.Sama seperti proses pada update, cara di atas adalah untuk melakukan delete pada 1 record saja. Sedangkan untuk melakukan delete beberapa record dapat dilihat pada contoh kode di bawah ini.
Flight::where('active', 0)->delete();
Anda bisa menggunakan where untuk memberikan kondisi record mana yang akan dihapus dan menggunakan perintah delete() untuk menghapus data.
Demikianlah penjelasan lanjutan mengenai Eloquent ini. Untuk pembahasan lebih lanjut tentang eloquent seperti cara melakukan soft delete akan dilakukan pada artikel-artikel yang selanjutnya. Semoga penjelasan pada artikel tentang eloquent ini dapat dipahami dan selamat mencoba.
Tutorial Laravel 5.5 - Eloquent (Bagian 6)
Reviewed by Donny Winarto
on
July 18, 2018
Rating:
No comments: