Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memadatkan Operasi Pangkalan Data dengan Kaedah Laravel Eloquent's firstOrNew()?

Bagaimana untuk Memadatkan Operasi Pangkalan Data dengan Kaedah Laravel Eloquent's firstOrNew()?

Linda Hamilton
Linda Hamiltonasal
2024-10-20 08:52:02817semak imbas

How to Condense Database Operations with Laravel Eloquent's firstOrNew() Method?

Fungsi Laravel Eloquent: Buat atau Kemas Kini Rekod

Pendekatan Ringkas untuk Operasi Pangkalan Data

Dalam kit pangkalan data Laravel, Eloquent menyediakan kaedah mudah untuk mengendalikan kedua-dua sisipan rekod dan kemas kini secara serentak. Kaedah ini menjimatkan kerumitan menulis kod eksplisit untuk operasi ini.

Mencipta Rekod Baharu atau Mengemas kini Yang Sedia Ada:

Bayangkan senario di mana anda perlu menentukan sama ada untuk memasukkan rekod baharu atau mengemas kini yang sedia ada berdasarkan kewujudan keadaan tertentu. Secara tradisinya, ini memerlukan semakan berasingan untuk kewujudan rekod dan penyisipan atau pertanyaan kemas kini seterusnya.

Penyelesaian Padat:

Laravel's Eloquent memperkenalkan pendekatan ringkas untuk tugas ini: firstOrNew(). Seperti yang ditunjukkan dalam coretan PHP yang disediakan:

<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID)
    ->where('metadataKey', '=', 2001)->first();</code>

Kod ini menyemak sama ada rekod wujud dalam jadual ShopMeta dengan shopId dan metadataKey yang ditentukan. Jika tiada rekod sedemikian ditemui, ia akan mengembalikan batal.

Menambah atau Mengubah Suai Data:

Untuk meneruskan proses sisipan/kemas kini:

<code class="php">if ($shopOwner == null) {
    // Insert new record into database
} else {
    // Update the existing record
}</code>

Jika $shopOwner adalah memang batal, rekod baru boleh dimasukkan. Jika tidak, rekod sedia ada boleh dikemas kini.

Memurnikan dengan firstOrNew():

Penyelesaian yang lebih baik, seperti yang dicadangkan oleh "lu cip", ialah menggunakan kaedah firstOrNew() , yang menghapuskan keperluan untuk semakan bersyarat:

<code class="php">$user = User::firstOrNew(array('name' => Input::get('name')));
$user->foo = Input::get('foo');
$user->save();</code>

Dengan pendekatan yang dikemas kini ini, jika rekod dengan nama yang dinyatakan wujud, ia diambil semula; jika tidak, rekod baru dicipta. Operasi seterusnya (cth., menetapkan foo) dan menyimpan rekod diperkemas di bawah satu panggilan save().

Atas ialah kandungan terperinci Bagaimana untuk Memadatkan Operasi Pangkalan Data dengan Kaedah Laravel Eloquent's firstOrNew()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn