Bagaimana untuk Semak sama ada Model Berkaitan Wujud dalam Laravel?

Susan Sarandon
Lepaskan: 2024-11-05 14:12:02
asal
670 orang telah melayarinya

How to Check if a Related Model Exists in Laravel?

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

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

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

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!

sumber:php.cn
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