Rumah > rangka kerja php > Laravel > Bagaimana untuk menggantikan id kunci utama dalam laravel

Bagaimana untuk menggantikan id kunci utama dalam laravel

PHPz
Lepaskan: 2023-04-21 10:32:48
asal
711 orang telah melayarinya

Laravel ialah rangka kerja PHP yang sangat popular Ia mempunyai sintaks yang cantik dan fungsi yang berkuasa, membolehkan pembangun membina aplikasi web yang cekap dengan mudah. Dalam Laravel, setiap jadual pangkalan data mesti mempunyai kunci utama, yang biasanya lalai kepada medan "id", dan medan ini mestilah medan auto-kenaikan. Walau bagaimanapun, dalam beberapa senario perniagaan tertentu, kami mungkin perlu menggantikan medan "id" dengan medan lain sebagai kunci utama Dalam kes ini, kami perlu menggunakan kaedah penggantian kunci utama yang disediakan dalam dokumentasi rasmi Laravel.

1. Latar Belakang

Walaupun ia adalah situasi yang paling biasa untuk menggunakan kunci utama "id" secara lalai dalam Laravel, kadangkala reka bentuk asal jadual pangkalan data mungkin tidak cukup piawai atau unik . Pada masa ini, anda perlu menggantikan kunci utama asal dengan medan lain. Contohnya, dalam sesetengah senario perniagaan, mungkin perlu menggunakan nombor telefon mudah alih pengguna sebagai pengecam unik dan bukannya medan "id" lalai. Jika medan "id" lalai digunakan sebagai kunci utama, sistem tidak boleh membuat pertanyaan dengan cepat dan mengesan secara unik objek pengguna dalam sistem melalui nombor telefon mudah alih. Oleh itu, kita perlu menggunakan nombor telefon bimbit sebagai kunci utama untuk menyelesaikan masalah ini dengan lebih baik.

Dalam Laravel, kami boleh menggantikan kunci utama dengan mudah melalui model data berkuasa Eloquent ORM.

2. Cara menggunakan

Kaedah menggantikan kunci utama yang disediakan dalam Laravel adalah sangat mudah Anda hanya perlu mentakrifkan atribut $primaryKey dalam Model yang sepadan dan menetapkan nilai kepada anda perlu diganti dengan nama medan utama. Sebagai contoh, jika kita perlu menggunakan nombor telefon mudah alih pengguna sebagai kunci utama, kita boleh menentukan kod berikut dalam Model Pengguna:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $primaryKey = 'phone';  // 将phone字段设为主键
}
Salin selepas log masuk

Dengan cara ini, apabila menggunakan Eloquent ORM untuk membuat pertanyaan, Laravel akan lalai ke medan "telefon" Digunakan sebagai kunci utama. Sebagai contoh, jika kami perlu menanyakan maklumat pengguna, kami boleh menggunakan kod berikut:

$user = App\User::find('13888888888');
Salin selepas log masuk

Dengan cara ini, kami boleh menanyakan maklumat pengguna melalui nombor telefon mudah alih pengguna "13888888888".

3. Situasi yang berkenaan

Dalam pembangunan sebenar, mungkin jarang menggantikan kunci utama, tetapi ia sangat praktikal dalam beberapa senario perniagaan tertentu. Contohnya:

  1. Projek berbilang bahasa: Jika aplikasi anda perlu menyokong berbilang bahasa, maka keperluan biasa ialah menggunakan medan tertentu sebagai pengecam unik dalam berbilang bahasa kunci perlu diganti.
  2. Sumber data bersatu: Jika aplikasi anda perlu membaca data daripada berbilang sumber data dan kunci utama sumber data ini tidak konsisten, maka anda mungkin perlu menggantikannya dengan kunci utama bersatu.
  3. Senario lain: Dalam pembangunan sebenar, akan terdapat banyak senario lain di mana kunci utama perlu diganti, seperti menanyakan maklumat produk berdasarkan nombor produk, dsb.

4. Ringkasan

Laravel menyediakan kaedah yang sangat mudah untuk menggantikan kunci utama, yang boleh menyelesaikan masalah penggunaan kunci utama bukan lalai dalam beberapa senario perniagaan tertentu dengan mudah. Walaupun penggantian kunci utama agak jarang digunakan dalam pembangunan sebenar, ia sememangnya penyelesaian pelaksanaan yang baik yang membolehkan pembangun memilih kunci utama yang berbeza mengikut keperluan perniagaan yang berbeza, yang akan lebih sepadan dengan logik keperluan aplikasi, sambil menambah baik aplikasi prestasi.

Atas ialah kandungan terperinci Bagaimana untuk menggantikan id kunci utama 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan