Laravel Eloquent menyediakan kaedah yang mudah dan boleh dibaca untuk berinteraksi dengan pangkalan data, menjadikannya mudah untuk mendapatkan data pangkalan data. Beberapa teknik pemerolehan data diperkenalkan di bawah:
1. Dapatkan semua rekod
Gunakan kaedah all()
untuk mendapatkan semua rekod dalam jadual:
use App\Models\Post; $posts = Post::all();
Ini akan mengembalikan Koleksi. Anda boleh mengakses data menggunakan gelung foreach
atau kaedah pengumpulan lain:
foreach ($posts as $post) { echo $post->title; }
2. Dapatkan satu rekod
1. find()
Kaedah: Dapatkan satu rekod berdasarkan kunci utama.
$post = Post::find(1); if ($post) { echo $post->title; }
2. findOrFail()
Kaedah: Dapatkan satu rekod berdasarkan kunci utama Jika rekod tidak wujud, pengecualian 404 akan dibuang.
$post = Post::findOrFail(1);
3. first()
Kaedah: Dapatkan rekod pertama yang memenuhi syarat.
$post = Post::where('status', 'published')->first();
4. firstOrFail()
Kaedah: Dapatkan rekod pertama yang memenuhi syarat Jika rekod tidak wujud, pengecualian 404 akan dilemparkan.
$post = Post::where('status', 'published')->firstOrFail();
3. Gunakan syarat pertanyaan untuk menapis rekod
Gunakan where
dan pernyataan bersyarat lain untuk menapis data.
1. where
Kaedah:
$posts = Post::where('status', 'published')->get();
2. Pelbagai syarat:
$posts = Post::where('status', 'published') ->where('user_id', 1) ->get();
3. orWhere
Kaedah:
$posts = Post::where('status', 'published') ->orWhere('status', 'draft') ->get();
4. Pilih medan tertentu
Eloquent mendapat semua medan secara lalai. Gunakan kaedah select()
untuk memilih medan tertentu:
$posts = Post::select('title', 'content')->get();
5. Penomboran
Gunakan kaedah paginate()
untuk mendapatkan data dalam halaman:
$posts = Post::paginate(10);
Tunjukkan pautan penomboran dalam templat Blade:
{{ $posts->links() }}
6. Pecahan Data
Apabila memproses sejumlah besar data, penggunaan memori boleh dikurangkan dengan berkesan:
Post::chunk(100, function ($posts) { foreach ($posts as $post) { echo $post->title; } });
7. Isih hasil (Pemesanan)
Gunakan kaedah orderBy()
untuk mengisih mengikut susunan yang ditentukan:
$posts = Post::orderBy('created_at', 'desc')->get();
8. Had dan Offset
Gunakan kaedah take()
atau limit()
dan skip()
untuk mengehadkan bilangan rekod yang diambil:
$posts = Post::take(5)->get(); // 获取前 5 条记录 $posts = Post::skip(10)->take(5)->get(); // 跳过前 10 条,获取接下来的 5 条
9. Fungsi agregat (Agregat)
1. Kiraan:
$count = Post::count();
2. Nilai maksimum:
$maxViews = Post::max('views');
3. Nilai minimum:
$minViews = Post::min('views');
4. Purata:
$avgViews = Post::avg('views');
5. Jumlah:
$totalViews = Post::sum('views');
10. Pengambilan semula perhubungan tersuai
Eloquent menyokong mendapatkan data daripada model lain melalui perhubungan.
1. Bersemangat Memuatkan:
$posts = Post::with('comments')->get();
2. Nyatakan perhubungan:
$posts = Post::with(['comments', 'user'])->get();
11. Pertanyaan Mentah
Laksanakan pertanyaan SQL tersuai menggunakan fasad DB Laravel:
use App\Models\Post; $posts = Post::all();
Kaedah ini menyediakan kaedah pemerolehan data yang fleksibel untuk memenuhi pelbagai keperluan operasi pangkalan data. Sila pilih kaedah yang sesuai mengikut situasi sebenar.
Atas ialah kandungan terperinci Laravel Fasih ORM dalam Mendapatkan Separa Model Bangla). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!