Rumah  >  Artikel  >  rangka kerja php  >  Pertanyaan Pangkalan Data dan Hubungan Model dalam Laravel: Mengendalikan Manipulasi Data dengan Elegan

Pertanyaan Pangkalan Data dan Hubungan Model dalam Laravel: Mengendalikan Manipulasi Data dengan Elegan

WBOY
WBOYasal
2023-08-12 18:40:44942semak imbas

Pertanyaan Pangkalan Data dan Hubungan Model dalam Laravel: Mengendalikan Manipulasi Data dengan Elegan

Pertanyaan pangkalan data dan hubungan model dalam Laravel: mengendalikan operasi data dengan elegan

Pengenalan:
Operasi pangkalan data adalah bahagian yang tidak dapat dielakkan dalam pembangunan web, dan Laravel, sebagai rangka kerja pembangunan yang ringkas, elegan dan fleksibel, menyediakan pertanyaan pangkalan data yang kaya dan alat pemprosesan hubungan model. Menggunakan Laravel, kami boleh melaksanakan operasi pangkalan data dengan lebih mudah dan mewujudkan sambungan antara data melalui perhubungan model. Artikel ini akan memperkenalkan kaedah pemprosesan data secara elegan dalam Laravel daripada dua aspek: pertanyaan pangkalan data dan hubungan model, untuk membantu pembaca menggunakan Laravel dengan lebih baik untuk pembangunan.

1. Pertanyaan pangkalan data

  1. Pembina pertanyaan
    Laravel menyediakan set kaedah pembina pertanyaan yang boleh membantu kami membina pelbagai jenis pernyataan pertanyaan dengan cepat. Berikut ialah beberapa contoh:

// Soal semua pengguna
$users = DB::table('users')->get();

// Soal medan yang ditentukan dan susun mengikut id dalam tertib menurun
$ pengguna = DB ::table('users')->select('name', 'email')->orderBy('id', 'desc')->get();

// Usia pertanyaan lebih besar daripada atau sama dengan 18 Pengguna berumur
$users = DB::table('users')->where('age', '>=', 18)->get();

// Pertanyaan data pengguna mengikut halaman
$ pengguna = DB::table('users')->paginate(10);

  1. ORM Fasih
    Selain pembina pertanyaan, Laravel juga menyediakan ORM Eloquent yang berkuasa, yang menyediakan objek -cara berorientasikan untuk melakukan operasi Pangkalan Data. Mula-mula, kita perlu mentakrifkan model dan mengaitkan jadual pangkalan data:

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class Pengguna melanjutkan Model
{

{100}{101} diproses melalui model Pertanyaan dan operasi:

// Soal semua pengguna

$users = User::all();


// Soal medan yang ditentukan dan susun mengikut id dalam tertib menurun

$users = User::select( 'nama', 'e-mel' )->orderBy('id', 'desc')->get();


// Pertanyaan pengguna yang berumur 18 tahun ke atas

$users = User::where(' umur', '>= ', 18)->get();


// Soal data pengguna mengikut penomboran

$users = User::paginate(10);


2. selalunya terdapat perbezaan tertentu antara perhubungan Persatuan data, dan Laravel menyediakan pelbagai kaedah untuk mengendalikan perhubungan antara model, seperti satu-dengan-satu, satu-ke-banyak, banyak-ke-banyak, dsb. Berikut adalah pengenalan menggunakan satu-ke-banyak sebagai contoh.


Takrifkan perkaitan

Gunakan kaedah hasMany dalam kelas model untuk mentakrifkan perkaitan satu-ke-banyak:

  1. hasMany方法定义一对多关联关系:</li></ol> <p><?php </p></p> <p>namespace AppModels;</p> <p>use IlluminateDatabaseEloquentModel;</p> <p>class User extends Model<br>{</p><pre class='brush:php;toolbar:false;'>protected $table = 'users';</pre><p>}</p> <ol start="2"> <li>访问关联数据<br>通过在模型中定义的关联方法,我们可以方便地访问关联数据。例如,我们可以通过<code>$user->posts
  2. namespace AppModels;

use Illuminate
Database;Elluminate

Pengguna kelas memanjangkan Model
    {
  1. protected $table = 'users';
    
    public function posts()
    {
        return $this->hasMany(Post::class);
    }

    }

Akses data berkaitan
Kami boleh mengakses data berkaitan dengan mudah melalui kaedah perkaitan yang ditakrifkan dalam model. Sebagai contoh, kita boleh mendapatkan semua siaran pengguna melalui $user->posts:

  1. $user = User::find(1);
    $posts = $user->posts;

Penapisan dan pengisihan data yang berkaitan
Kami juga boleh menggunakan kaedah yang berkaitan untuk melaksanakan operasi penapisan dan pengisihan data. Sebagai contoh, dapatkan 5 siaran teratas pengguna dan isikannya dalam susunan menurun mengikut masa penerbitan:


$user = User::find(1);

$posts = $user->posts()->latest( )-> ;limit(5)->get();


Penjimatan data berkaitan🎜Melalui kaedah perkaitan, kami juga boleh menyimpan data yang berkaitan dengan mudah. Contohnya, buat siaran baharu dan kaitkan dengan pengguna: 🎜🎜🎜$user = User::find(1);🎜$post = new Post;🎜$post->title = 'Hello World';🎜$ post ->content = 'Laravel is awesome!';🎜$user->posts()->save($post);🎜🎜Kesimpulan: 🎜Melalui pembina pertanyaan pangkalan data dan alat pemprosesan hubungan model yang disediakan oleh Laravel, kami Operasi pangkalan data dan perhubungan antara data boleh dilakukan dengan lebih mudah semasa proses pembangunan. Saya harap artikel ini dapat memberikan sedikit panduan untuk pembaca apabila menggunakan Laravel Pembaca juga dialu-alukan untuk meneroka lebih banyak kaedah manipulasi data Laravel. 🎜

Atas ialah kandungan terperinci Pertanyaan Pangkalan Data dan Hubungan Model dalam Laravel: Mengendalikan Manipulasi Data dengan Elegan. 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