Laravel part 7 - Eloquent ORM & Model

9:33 PTG 0 Comments A+ a-

Mari berkenalan dengan Eloquent ORM terlebih dahulu.

Untuk bahan bacaan, sila ke:

https://laravel.com/docs/5.8/eloquent

Eloquent ORM Laravel menyediakan ActiveRecord yang cantik dan ringkas untuk satu-satu database. Setiap table memiliki model berinteraksi dengan table. Model boleh buat kita query data di dalam table seperti juga masuk data baru ke dalam table.

contoh seperti database students, biasanya nama model bernama student. table itu jamak, model itu singular.

Bukak terminal dan bina model:
php artisan make:model Student
Model created successfully.



secara asasnya, model Student ini sudah berhubung dengan table students

Note that we did not tell Eloquent which table to use for our Flight model. By convention, the "snake case", plural name of the class will be used as the table name unless another name is explicitly specified.


sekiranya table kita namanya tidak sama dengan model dan kita ingin link kan model tersebut dengan nama table itu, boleh kita link melalui arahan  declare  protected $table yang diselitkan ke dalam class Student extends Model.

class Student extends Model
{
    protected $table = 'pelajar_bijak';

}
Tapi untuk kes kita, model kita sudah sama nama dengan table. jadi declaration itu tidak perlu.

begitu juga jika primary key, boleh declare  protected $primaryKey:

class Student extends Model
{
    protected $table = 'pelajar_bijak';
    protected $primaryKey = "pel_bijak_id";
}

Tapi untuk kes kita, model kita sudah sama nama dengan table. jadi declaration primaryKey itu tidak perlu.

Sekarang jom tengok macam mana cara panggil model di https://laravel.com/docs/5.8/eloquent#retrieving-models:

Sekarang ini lihat PelajarController. Kita akan ubah teknik memanggil DB Query kepada penggunaan Model.

Ini adalah memanggil menggunakan DB Query
class PelajarController extends Controller
{
    public function index()
    {
      $pelajar = DB::table('students')->get();
      return view('pelajar.index',['pelajar'=>$pelajar]);
    
    }

Comment      $pelajar = DB::table('students')->get();
gantikan dengan
$pelajar = \App\Student::all();

jika kita refresh, page boleh memanggil data tersebut menggunakan kaedah model

untuk memudahkan pengaturcaraan , kita name spacing kan.
 $pelajar = \App\Student::all();

\App\Student kita letak di atas pengaturcaraan dibawah use Illuminate\Support\Facades\DB;

contoh seperti


jadi kita tidak perlu memanggil \App\Student lagi didalam function.

    public function index()
    {
    //   $pelajar = DB::table('students')->get();
      $pelajar = Student::all();
      return view('pelajar.index',['pelajar'=>$pelajar]);
    }

paparan sekarang ini dipanggil menggunakan kaedah model:



https://drive.google.com/drive/folders/1NFp6WfdDJbDW3jBOJuf5Tv6Wpj7unUvg?usp=sharing