Dalam laravel, nama penuh orm ialah "Pemetaan Perkaitan Objek", yang bermaksud "pemetaan hubungan objek". , apabila mengendalikan objek perniagaan, Tidak perlu berurusan dengan pernyataan SQL yang kompleks, hanya mengendalikan sifat dan kaedah objek tersebut.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Laravel 6, komputer Dell G3.
Apakah itu ORM , Dengan cara ini, apabila kita mengendalikan objek perniagaan tertentu, kita tidak perlu lagi berurusan dengan pernyataan SQL yang kompleks, kita hanya perlu mengendalikan sifat dan kaedah objek tersebut.
Kaedah pelaksanaan ORM
Dua kaedah pelaksanaan yang paling biasa ialah ActiveRecord dan DataMapper (yang dahulu digunakan dalam laravel)
ActiveRecord (sangat popular) mempunyai surat-menyurat satu-sama-satu antara model dan jadual data, manakala model dan jadual data dalamMemahami dua fungsi sihir __call () dan __callStatic ()
Memahami dua fungsi sihir sebelumnya juga merupakan perkara yang sukar dalam laravel Eloqument ORM yang saya faham , mari kita lihat kod sumber dalam Model
class Test{ //动态调用的时候 没有找到此函数 则执行__call() 方法 public function __call($method, $parameters){ echo 22222222222; return (new Rest)->$method(...$parameters); } //静态调用的时候 没有找到此函数 则执行__callStatic()方法 public static function __callStatic($method, $parameters){ echo 1111111111; return (new static)->$method(...$parameters); } } class Rest{ public function foo($name , $age){ echo 333; dump($name,$age); } } //先调用了__callStatic(), 在调用__call(), 然后调用 foo(); Test::foo('张三',17); //只调用了 __call(), 然后调用 foo(); (new Test())->foo('李四',16);die;
statik baharu mengembalikan contoh pemanggil, diri baharu () mengembalikan contoh sendiri
/** * Handle dynamic method calls into the model. * * @param string $method * @param array $parameters * @return mixed */public function __call($method, $parameters) { if (in_array($method, ['increment', 'decrement'])) { return $this->$method(...$parameters); } return $this->newQuery()->$method(...$parameters); } /** * Handle dynamic static method calls into the method. * * @param string $method * @param array $parameters * @return mixed */public static function __callStatic($method, $parameters) { return (new static)->$method(...$parameters); }
di mana kaedah tiada dalam Model, fungsi callStatic() akan dilaksanakan terlebih dahulu untuk mendapatkan contoh AppModelsPolitician, kemudian panggilan () akan dilaksanakan, dan di mana () count() akan ditemui dalam instance dikembalikan oleh $this->newQuery () ) dan kaedah lain.
$list = Politician::where('party_id', 1)->count();
Pembina pertanyaan dalam laravel
ORM yang fasih sebenarnya merangkumkan pembinaan pertanyaan, menjadikannya lebih mudah untuk dikendalikan. Jika anda berminat dengan kod sumber pembina pertanyaan, anda boleh lihat
$list = DB::table('categoty')->get();
tutorial video laravel
]Atas ialah kandungan terperinci apa itu laravel orm. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!