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