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

Linda Hamilton
Lepaskan: 2024-10-20 08:52:02
asal
816 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!