Rumah >rangka kerja php >Laravel >Analisis ringkas tentang cara menggunakan kaedah pilih sebagai dalam laravel

Analisis ringkas tentang cara menggunakan kaedah pilih sebagai dalam laravel

PHPz
PHPzasal
2023-04-03 18:52:191510semak imbas

Laravel ialah rangka kerja PHP popular yang menyediakan banyak fungsi dan ciri yang mudah, termasuk cara untuk memudahkan pernyataan pertanyaan SQL. Salah satunya ialah kaedah pilih sebagai.

Kaedah pilih sebagai membolehkan anda memberikan alias kepada lajur hasil pertanyaan dalam pernyataan pertanyaan SQL, supaya anda boleh mengendalikan dan merujuk lajur ini pada masa hadapan. Sintaks kaedah ini adalah seperti berikut:

DB::table('table_name')
   ->select('column_name AS column_alias', 'another_column AS another_alias')
   ->get();

Dalam contoh di atas, kami menggunakan kelas DB untuk menyambung ke pangkalan data dan memilih jadual (table_name). Gunakan kaedah select untuk memilih lajur yang kami perlukan dan tentukan alias untuk lajur ini. Format alias ialah column_name AS column_alias.

Sebagai contoh, untuk menentukan alias untuk lajur id dan username dalam jadual pengguna:

DB::table('users')
   ->select('id AS user_id', 'username AS name')
   ->get();

Ini akan mengembalikan tatasusunan objek yang mengandungi semua hasil yang sepadan dengan kriteria pertanyaan :

[
  { "user_id": 1, "name": "john" },
  { "user_id": 2, "name": "jane" },
  { "user_id": 3, "name": "bob" },
  ...
]

Anda boleh menggunakan alias untuk mengisih, menapis, menomborkan hasil, dsb.:

DB::table('users')
   ->select('id AS user_id', 'username AS name')
   ->orderBy('name')
   ->skip(10)
   ->take(5)
   ->get();

Dalam contoh di atas, kami mengisih mengikut abjad mengikut nama pengguna, melangkau yang sebelumnya 10 keputusan, kemudian pilih 5 keputusan seterusnya.

Kaedah pilih sebagai sesuai untuk sebarang jenis pertanyaan, termasuk pertanyaan sertai. Sebagai contoh, katakan kita mempunyai jadual orders yang merangkumi butiran pesanan dan ID pengguna yang sepadan:

orders table:
+----+---------+---------+------+
| id | user_id | product | cost |
+----+---------+---------+------+
| 1  | 1       | Apple   | 10   |
| 2  | 2       | Banana  | 15   |
| 3  | 1       | Orange  | 8    |
| 4  | 3       | Pear    | 20   |
| 5  | 2       | Kiwi    | 5    |
| 6  | 1       | Mango   | 12   |
+----+---------+---------+------+

Kita boleh menggunakan pertanyaan sertai untuk mendapatkan jumlah harga pesanan bagi setiap pengguna :

DB::table('users')
   ->join('orders', 'users.id', '=', 'orders.user_id')
   ->select('users.name', DB::raw('SUM(cost) AS total_cost'))
   ->groupBy('users.name')
   ->get();

Dalam contoh di atas, kami menyertai jadual users dan orders, memilih nama semua pengguna dan jumlah harga pesanan mereka (dikira menggunakan fungsi agregat SUM) . Kami menggunakan GROUP BY untuk mengumpulkan hasil mengikut nama pengguna. Keputusan akhir adalah seperti berikut:

[
  { "name": "bob", "total_cost": "20" },
  { "name": "jane", "total_cost": "20" },
  { "name": "john", "total_cost": "30" },
  ...
]

Perhatikan bahawa dalam contoh ini kami menggunakan DB::raw untuk memproses kod asal dalam pernyataan pertanyaan SQL Kaedah ini membolehkan kami menambah sebarang kod yang kami perlukan pada pertanyaan pernyataan, seperti fungsi agregat.

Untuk meringkaskan, kaedah pilih sebagai Laravel membolehkan anda menentukan alias untuk lajur hasil pertanyaan, menjadikannya lebih mudah untuk anda mengendalikan dan merujuk lajur ini pada masa hadapan. Ia berfungsi dengan sebarang jenis pertanyaan, termasuk pertanyaan penyertaan. Jika anda sedang membangun dengan Laravel, kaedah ini pasti akan menjadikan kerja anda lebih mudah dan cekap.

Atas ialah kandungan terperinci Analisis ringkas tentang cara menggunakan kaedah pilih sebagai dalam laravel. 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