Prasyarat
Anda mesti membuat projek Laravel sebelum memulakan tutorial ini. Anda juga mesti mempunyai pengetahuan asas mengenai pengawal dan penghalaan.
Buat Koleksi
Buat pengawal bernama Koleksi Pengawal dan tuliskan kod yang diperlukan untuk membuat koleksi baru di dalam alat kawalan. Jalankan arahan berikut untuk membuat pengawal.
$ php artisan make: pengawal CollectionControllerAnda boleh membuat koleksi menggunakan kelas koleksi atau kaedah pengumpulan (). Kedua-dua cara ditunjukkan di bawah. Tambahkan baris berikut di bahagian atas Koleksi Pengawal kelas untuk menggunakan koleksi kelas.
// Tambahkan kelas koleksigunakan Illuminate \ Support \ Collection;
A. Buat Koleksi Menggunakan Kelas
Buat koleksi_kelas () kaedah dengan kod berikut di dalam KoleksiConntroller. Di sini, koleksi nombor dibuat dengan kelas koleksi. Apabila kaedah ini dipanggil, nilai pemboleh ubah koleksi akan ditunjukkan di penyemak imbas.
koleksi fungsi awam_kelas ()// Buat koleksi baru menggunakan kelas Koleksi
$ koleksi1 = Koleksi baru ([67,34,89,56,23]);
// membuang kandungan berubah dalam penyemak imbas
dd ($ koleksi1);
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil koleksi_kelas ().
Laluan :: get ('collect1', '[email protected] _class');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / kumpulkan1
Output berikut akan muncul setelah menjalankan URL. Lima nombor koleksi dicetak di sini.
B. Buat Koleksi Menggunakan Kaedah
Koleksi juga boleh dibuat dengan menggunakan kumpulkan () kaedah. Tambahkan perkara berikut kumpulkan_ kaedah () di dalam Koleksi Pengawal untuk membuat koleksi rentetan menggunakan kumpulkan () kaedah. Apabila kaedah ini dipanggil, nilai pemboleh ubah koleksi akan ditunjukkan dalam penyemak imbas, seperti sebelumnya.
fungsi awam mengumpulkan_ kaedah ()// Buat koleksi baru menggunakan kaedah pengumpulan
$ collection2 = collect (["Bagus", "Lebih baik", "Terbaik"]);
// membuang kandungan berubah dalam penyemak imbas
dd ($ koleksi2);
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil kumpulkan_ kaedah ().
Laluan :: get ('collect2', '[email protected] _method');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / kumpulkan2
Output berikut akan muncul setelah menjalankan URL. Tiga nilai rentetan koleksi dicetak di sini.
Cari Data dalam Koleksi
Data dapat dicari dari koleksi dengan pelbagai cara. Tambahkan kod berikut di dalam Koleksi Pengawal. Dua jenis carian ditunjukkan dalam kod. Pertama, kumpulan pelanggan ditentukan, dan mengandungi () kaedah digunakan untuk mencari pelanggan yang bernama 'Janifer.' Seterusnya, kumpulan array pelbagai dimensi ditakrifkan, dan di mana () kaedah digunakan untuk dua jenis pencarian dalam koleksi. Yang pertama di mana () kaedah digunakan untuk mencari maklumat, di mana ID kunci mengandungi nilai '011176645.' Yang kedua di mana () kaedah digunakan untuk mencari maklumat di mana tanda daripada CSE409 adalah 88.
carian fungsi awam_data ()// Menyatakan koleksi
$ customer = collect ([['id' => '894673', 'name' => 'Rahman', 'email' => '[dilindungi e-mel]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[dilindungi e-mel]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[dilindungi e-mel]']]);
// Cari menggunakan kaedah mengandungi
jika ($ customer-> mengandungi ('name', 'Janifer'))
echo "Janifer ada dalam senarai pelanggan.
";
// Nyatakan koleksi lain
$ markah = kumpulkan ([
['ID' => '011176644', 'markah' => ['CSE401' => 87, 'CSE409' => 88]],
['ID' => '011176645', 'markah' => ['CSE402' => 69, 'CSE409' => 75]],
]);
// Cari menggunakan kaedah di mana
gema $ markah-> di mana ('ID', '011176645')."
";
gema $ markah-> di mana ('markah.CSE409 ', 88);
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil carian_data ().
Laluan :: get ('src_collection', '[email protected] _data');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / src_collection
Output berikut akan muncul setelah menjalankan URL.
Penapis Data Pengumpulan
The penapis () kaedah digunakan untuk menyaring data dari koleksi. Tambahkan kod berikut di Koleksi Pengawal. Kumpulan koleksi produk didefinisikan dalam kod yang mengandungi nama produk dan harga. The penapis () kaedah digunakan untuk menyaring data dari pengumpulan yang harga nilai lebih besar daripada 4000. Pengumpulan data yang disaring diubah menjadi array dan dicetak oleh untuk gelung.
filter_data fungsi awam ()// Menyatakan koleksi
$ produk = kumpulkan ([
['produk' => 'HDD', 'harga' => 6000],
['produk' => 'Tetikus', 'harga' => 500],
['produk' => 'Monitor', 'harga' => 5000],
['produk' => 'Pencetak', 'harga' => 4000],
]);
// Buat senarai lain setelah menyaring data berdasarkan nilai harga
$ filter_price = $ products-> filter (fungsi ($ item)
mengembalikan data_get ($ item, 'harga')> 4000;
);
// Baca semua data sebagai susunan dari koleksi baru
$ filtered = $ filter_price-> semua ();
// Menukar nilai array menggunakan gelung
foreach ($ ditapis sebagai nilai $)
gema "Nama:".$ value ['produk'].","."Harga:".$ nilai ['harga']."
";
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil penapis_data ().
Laluan :: get ('filter_collection', '[email dilindungi] _data');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / filter_koleksi
Output berikut akan muncul setelah menjalankan URL.
Susun Data Pengumpulan
Pelbagai mengurut kaedah ada di Laravel untuk menyusun data pengumpulan. Tambahkan kod berikut di Koleksi Pengawal. Kumpulan buku ditentukan dalam kod. The disusun mengikut() kaedah digunakan untuk menyusun data pengumpulan berdasarkan kunci 'pengarang.Kemudian, nilai pemboleh ubah koleksi yang disusun dicetak di penyemak imbas.
fungsi awam sort_data ()// Menyatakan koleksi
$ buku = kumpulkan ([
['name' => 'Buku Masakan Python: Resipi untuk Menguasai Python 3',
'pengarang' => 'David Beazley'],
['name' => 'Pelajari Python dalam 1 Hari: Panduan Lengkap Python dengan Contoh',
'author' => 'Krishna Rungta'],
['name' => 'Pengaturcaraan Python: Pengantar Sains Komputer',
'author' => 'John M. Zelle '],
['name' => 'Python Pocket Reference 5ed: Python di Pocket Anda',
'pengarang' => 'Mark Lutz']
]);
// Susun data pengumpulan berdasarkan nama pengarang
$ sortedBook = $ books-> sortBy ('pengarang');
// membuang kandungan berubah dalam penyemak imbas
dd ($ sortedBook-> nilai () -> toArray ());
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil susun_data ().
Laluan :: get ('sort_collection', '[email dilindungi] _data');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / sort_koleksi
Output berikut akan muncul setelah menjalankan URL.
Data Pengumpulan Slice
Bahagian tertentu boleh dipotong dari koleksi menggunakan ambil () kaedah. Tambahkan kod berikut di Koleksi Pengawal. The ambil () kaedah digunakan dalam kod untuk membuat senarai baru dengan memotong tiga item pertama dari koleksi. Seterusnya, untuk gelung mencetak nilai koleksi baru.
slice_data fungsi awam ()// Menyatakan koleksi
$ Languages = collect (['PHP', 'Bash', 'Python', 'Java', 'C #', 'C ++']);
// Dapatkan semula tiga data pertama
$ slice = $ Languages-> take (3);
// Nilai pengumpulan berulang
foreach ($ slice sebagai nilai $)
echo $ nilai."";
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil slice_data ().
Laluan :: get ('slice_collection', '[email dilindungi] _data');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / slice_collection
Output berikut akan muncul setelah menjalankan URL.
Cari Perbezaan Antara Dua Koleksi
The perbezaan () kaedah digunakan untuk mencari nilai dari koleksi pertama yang tidak ada pada koleksi kedua. Tambahkan kod berikut dalam CollectionController. Dua pemboleh ubah pengumpulan ditakrifkan di sini. The perbezaan () kaedah menghasilkan koleksi baru setelah mengambil nilai dari senarai1 yang tidak wujud di senarai2.
fungsi awam find_diff ()// Menyatakan dua koleksi
$ list1 = collect (['Notebook', 'Pen', 'Sharpner', 'Skala', 'Pensil']);
$ list2 = mengumpulkan (['Pensil', 'Pensil Warna', 'Kertas Warna', 'Pena']);
// Cari data mana yang ada dalam senarai1 tetapi tidak dalam senarai2
$ newList = $ list1-> diff ($ list2);
// membuang kandungan berubah dalam penyemak imbas
dd ($ newList);
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil cari_diff ().
Laluan :: get ('diff_collection', '[email dilindungi] _diff');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / diff_collection
Output berikut akan muncul setelah menjalankan URL.
Data Pengumpulan Balik
The selak () kaedah digunakan untuk menjadikan kunci nilai dan nilai ke kunci koleksi. Tambahkan kod berikut dalam CollectionController untuk memeriksa fungsi selak () kaedah. Kumpulan tiga item ditentukan dalam kod. The selak () kaedah digunakan untuk pengumpulan dan output dari selak () kaedah dicetak dengan menggunakan hari () kaedah.
fungsi awam flip_data ()// Menyatakan koleksi
$ produk = kumpulkan (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
// membuang kandungan berubah dalam penyemak imbas
dd ($ produk-> flip ());
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil flip_data ().
Laluan :: get ('flip_collection', '[email dilindungi] _data');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / flip_collection
Output berikut akan muncul setelah menjalankan URL.
Dapatkan Koleksi
The dapatkan () kaedah digunakan untuk membaca nilai kunci tertentu dari koleksi. Tambahkan kod berikut di Koleksi Pengawal. Nilai 'nama ' kunci diambil dalam kod dengan menggunakan dapatkan () kaedah.
Retrieve_data fungsi awam ()// Menyatakan koleksi
$ produk = kumpulkan (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
dd ($ products-> get ('name'));
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil ambil semula_data ().
Laluan :: get ('read_collection', '[email dilindungi] _data');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / read_collection
Output berikut akan muncul setelah menjalankan URL.
Data Pengumpulan Kumpulan
The kumpulanDengan () kaedah digunakan untuk membuat koleksi baru dari koleksi lain dengan mengelompokkan berdasarkan nilai kunci tertentu. Tambahkan kod berikut di dalam Koleksi Pengawal. The kumpulanDengan () kaedah digunakan di sini untuk mengembalikan koleksi baru dengan mengelompokkan nilai berdasarkan 'Apr'kunci.
fungsi awam kumpulan_data()
kumpulan fungsi awam_data ()$ jualan = kumpulkan ([
['Jan' => 100000],
['Mar' => 500000],
['Apr' => 600000],
['Jan' => 450000],
['Jun' => 230000],
['Ogos' => 600000],
['Sep' => 789333],
['Jul' => 452000],
['Jan' => 700000],
['Apr' => 490000],
['Jun' => 670000],
['Apr' => 560000]
]);
dd ($ sales-> groupBy ('Apr'));
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil kumpulan_data ().
Laluan :: get ('group_collection', '[email dilindungi] _data');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / group_collection
Output berikut akan muncul setelah menjalankan URL.
Gabungkan Data Pengumpulan
The meletup () kaedah digunakan untuk menggabungkan nilai utama tertentu dari koleksi. Tambahkan kod berikut di dalam Koleksi Pengawal. The meletup () kaedah digunakan di sini untuk menggabungkan nilai-nilai nama kunci koleksi dengan ruang.
fungsi awam join_data ()// Menyatakan koleksi
$ customer = collect ([['id' => '894673', 'name' => 'Rahman', 'email' => '[email dilindungi]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[dilindungi e-mel]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[dilindungi e-mel]']]);
// Gabungkan dan cetak nilai
dd ($ customer-> implode ('name', "));
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil join_data ().
Laluan :: get ('join_collection', '[email dilindungi] _data');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / join_collection
Output berikut akan muncul setelah menjalankan URL.
Baca Kunci Koleksi
The kunci () kaedah digunakan untuk membuat koleksi baru dengan semua kunci koleksi lain. Tambahkan kod berikut di dalam Koleksi Pengawal. Koleksi yang didefinisikan dalam kod berisi berbagai jenis data sebagai item, seperti nilai dengan indeks angka, nilai dengan kunci, dan array lain.
fungsi awam read_keys ()// Menyatakan koleksi
$ mixdata = kumpulkan ([
['laman web' => 'google.com ',' type '=>' search engine '],' language '=>' PHP ',
1234, 'name' => 'Fahmida', 'game' => 'PUBG', 'color' => 'biru']);
// Cetak koleksi baru yang dihasilkan dengan kaedah kunci ()
dd ($ mixdata-> kekunci ());
Tambahkan laluan berikut di laluan \ web.php fail untuk memanggil kunci_ baca ().
Laluan :: get ('key_collection', '[email dilindungi] _keys');Masukkan URL berikut di penyemak imbas untuk memeriksa keluarannya.
http: // localhost: 8000 / key_collection
Output berikut akan muncul setelah menjalankan URL.
Kesimpulannya
Pengumpulan Laravel membolehkan anda melakukan pelbagai jenis tugas dengan data, seperti susunan PHP. Beberapa kaedah berguna Laravel Collection dijelaskan dalam tutorial ini dengan menggunakan kod yang sangat mudah. Eloquent ORM adalah penggunaan lain dari koleksi di Laravel yang tidak diliputi dalam tutorial ini. Satu batasan utama kelas koleksi adalah bahawa ia menghasilkan koleksi baru setiap kali kaedah dipanggil kerana tidak boleh berubah. Setelah membaca tutorial ini, pembaca kini harus mengetahui beberapa kegunaan asas koleksi Laravel.