Menyemak Kewujudan Model Berkaitan dalam Laravel
Dalam Laravel, model Eloquent mewakili entiti pangkalan data dan menyediakan kaedah yang mudah untuk mengurus perhubungan antara entiti tersebut. Walau bagaimanapun, apabila bekerja dengan perhubungan, mungkin perlu menyemak sama ada model berkaitan wujud sebelum melaksanakan operasi selanjutnya.
Pertimbangkan kod berikut:
<code class="php">public function option() { return $this->hasOne('RepairOption', 'repair_item_id'); } public function setOptionArrayAttribute($values) { $this->option->update($values); }</code>
Dalam senario ini, kami mempunyai model yang mempunyai hubungan satu dengan satu dengan model lain. Apabila mencipta atau mengemas kini model ini, kita perlu menentukan sama ada model yang berkaitan wujud untuk memutuskan sama ada untuk mengemas kini atau menciptanya.
Penyelesaian 1 (Laravel 7.2 ):
Dalam Laravel 7.2 dan lebih tinggi, anda boleh menggunakan kaedah exists() pada objek hubungan untuk menyemak sama ada model berkaitan wujud:
<code class="php">$model = RepairItem::find($id); if (Input::has('option')) { if ($model->option()->exists()) { // Option exists, update it } else { // Option does not exist, create it } }</code>
Penyelesaian 2 (Pra-Laravel 7.2):
Dalam versi Laravel sebelum 7.2, anda boleh menggunakan kaedah count() pada objek hubungan untuk menyemak sama ada model berkaitan wujud:
<code class="php">if (count($model->option)) { // Option exists } else { // Option does not exist }</code>
Nota: Kaedah ini hanya berfungsi jika hubungan itu ialah hubungan nilai tunggal (cth., hasOne, belongsTo). Untuk banyak-ke-banyak atau perhubungan berasaskan koleksi lain, anda boleh menggunakan kaedah seperti count() atau isNotEmpty() pada koleksi perhubungan untuk menyemak sama ada ia mengandungi sebarang model berkaitan.
Atas ialah kandungan terperinci Bagaimana untuk Semak sama ada Model Berkaitan Wujud dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!