Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memasukkan atau Mengemas kini Rekod Dengan Cekap Menggunakan Kaedah Eloquent's firstOrNew()?

Bagaimana untuk Memasukkan atau Mengemas kini Rekod Dengan Cekap Menggunakan Kaedah Eloquent's firstOrNew()?

Susan Sarandon
Susan Sarandonasal
2024-10-20 08:47:01433semak imbas

How to Insert or Update Records Efficiently Using Eloquent's firstOrNew() Method?

Memasukkan atau Mengemas kini Rekod dalam Laravel Eloquent

Apabila bekerja dengan pangkalan data, adalah perkara biasa untuk perlu memasukkan rekod baharu jika ia tidak wujud atau mengemas kini rekod sedia ada jika ia berlaku. Dalam ORM Eloquent Laravel, ini boleh dilakukan secara ringkas menggunakan kaedah firstOrNew().

Syntax

$model = Model::firstOrNew($attributes);
  • $attributes: Tatasusunan atribut yang perlu ada pada yang pertama atau rekod yang baru dibuat.

Mengemas kini Rekod Sedia Ada

Jika rekod sudah wujud dalam pangkalan data, kaedah firstOrNew() akan mengembalikan contoh model tersebut. Anda kemudian boleh mengubah suai atributnya dan menyimpannya menggunakan kaedah save().

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

Memasukkan Rekod Baharu

Jika rekod tidak wujud dalam pangkalan data, kaedah firstOrNew() akan mencipta contoh baharu model dengan atribut yang ditentukan. Ia kemudiannya akan memasukkan rekod ke dalam pangkalan data apabila anda memanggil kaedah save().

<code class="php">// Insert new record into database</code>

Pendekatan Alternatif

Dalam coretan kod yang disediakan, pendekatan berikut juga digunakan untuk memasukkan rekod baharu jika ia tidak wujud atau kemas kini rekod sedia ada jika ia:

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

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

Pendekatan ini melibatkan pertanyaan pertama pangkalan data untuk mendapatkan semula rekod sedia ada. Jika tiada rekod ditemui, rekod baharu akan dimasukkan. Jika tidak, rekod sedia ada dikemas kini.

Dokumentasi Dikemas Kini

Untuk mendapatkan maklumat terkini tentang kaedah firstOrNew(), rujuk dokumentasi yang dikemas kini yang dipautkan di bawah.

[Dokumentasi Kemas Kini Pautan](https://laravel.com/docs/8.x/eloquent)

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan atau Mengemas kini Rekod Dengan Cekap Menggunakan Kaedah 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