Rumah > rangka kerja php > Laravel > teks badan

Cara menggunakan perisian tengah untuk eksport data dalam Laravel

王林
Lepaskan: 2023-11-02 08:29:49
asal
1380 orang telah melayarinya

Cara menggunakan perisian tengah untuk eksport data dalam Laravel

Laravel ialah rangka kerja aplikasi web PHP yang popular yang menyediakan banyak ciri mudah untuk membangunkan aplikasi web berprestasi tinggi, berskala dan mudah diselenggara. Salah satu ciri penting ialah perisian tengah, yang boleh melakukan operasi tertentu antara permintaan dan respons. Dalam artikel ini, kami akan membincangkan cara mengeksport data ke fail Excel menggunakan perisian tengah.

  1. Buat aplikasi Laravel

Pertama, kita perlu mencipta aplikasi Laravel. Anda boleh mencipta projek Laravel baharu menggunakan komposer seperti ini:

$ composer create-project --prefer-dist laravel/laravel myapp
Salin selepas log masuk

Ini akan mencipta projek Laravel yang dipanggil myapp.

  1. Buat Pengawal

Dalam Laravel, pengawal ialah komponen teras yang mengendalikan permintaan HTTP. Kita perlu mencipta pengawal untuk mengendalikan permintaan untuk mengeksport data. Cipta pengawal menggunakan arahan berikut:

$ php artisan make:controller ExportController
Salin selepas log masuk

Ini akan mencipta pengawal baharu yang dipanggil ExportController. Dalam pengawal, kita perlu melaksanakan kaedah untuk mengendalikan permintaan eksport. Dalam contoh ini, kami akan menggunakan kaedah eksport() untuk melaksanakan operasi eksport.

  1. Cipta Middleware

Laravel middleware boleh menambah pemprosesan tambahan semasa permintaan HTTP. Kami akan mencipta perisian tengah yang dipanggil ExportMiddleware untuk mengendalikan permintaan eksport dan menyemak sama ada permintaan itu mengandungi data yang perlu dieksport.

Buat perisian tengah menggunakan arahan berikut:

$ php artisan make:middleware ExportMiddleware
Salin selepas log masuk

Ini akan mencipta perisian tengah baharu yang dipanggil ExportMiddleware. Dalam middleware, kita perlu melaksanakan kaedah handle() untuk melaksanakan operasi eksport. Dalam contoh ini, kami akan menyemak sama ada permintaan mengandungi data dan jika ya, ekstrak data daripada permintaan dan eksport ke fail Excel menggunakan perpustakaan Laravel Excel.

  1. Memasang dan Mengkonfigurasi Laravel Excel

Laravel Excel ialah pakej sambungan Laravel yang sangat popular yang menyediakan banyak kaedah mudah untuk bekerja dengan dokumen Excel. Anda boleh memasang Laravel Excel menggunakan arahan berikut:

$ composer require maatwebsite/excel
Salin selepas log masuk

Selepas pemasangan selesai, anda perlu mengkonfigurasi pembekal perkhidmatan dan alias untuk Laravel Excel. Buka fail config/app.php dan tambahkan kod berikut pada tatasusunan penyedia:

MaatwebsiteExcelExcelServiceProvider::class,
Salin selepas log masuk

Tambahkan kod berikut pada tatasusunan alias:

'Excel' => MaatwebsiteExcelFacadesExcel::class,
Salin selepas log masuk
  1. Tulis kod eksport

Kini, kami bersedia untuk menulis kod eksport. Dalam ExportMiddleware, kami akan menggunakan kod berikut untuk mengeksport data yang diekstrak daripada permintaan ke fail Excel:

use Excel;

public function handle($request, Closure $next)
{
    if (!$request->has('data')) {
        return response()->json([
            'message' => 'No data to export'
        ], 400);
    }

    $data = $request->get('data');

    return Excel::download(new ExportData($data), 'data.xlsx');
}
Salin selepas log masuk

Dalam kod, kami akan menggunakan kaedah Excel::download() untuk mengeksport data kepada dokumen Excel. Kaedah ini menerima dua parameter: kelas pengeksport data dan nama fail. Kelas pengeksport data ialah kelas yang melaksanakan antara muka FromCollection dan digunakan untuk mengeksport koleksi data ke fail Excel.

Dalam contoh ini, kami mencipta kelas pengeksport data yang dipanggil ExportData untuk mengendalikan eksport data. Berikut ialah contoh mudah kelas ExportData:

use MaatwebsiteExcelConcernsFromCollection;

class ExportData implements FromCollection
{
    protected $data;

    public function __construct($data)
    {
        $this->data = $data;
    }

    public function collection()
    {
        return collect($this->data);
    }
}
Salin selepas log masuk

Dalam kelas ini, kami menggunakan antara muka FromCollection untuk mengeksport pengumpulan data ke dalam fail Excel. Kaedah collection() mengembalikan koleksi data yang akan dieksport oleh Laravel Excel ke fail Excel.

  1. Mendaftar Middleware

Kini, kita perlu mendaftarkan middleware ke dalam aplikasi Laravel. Buka fail app/Http/Kernel.php dan tambahkan kod berikut pada tatasusunan $routeMiddleware:

'export' => AppHttpMiddlewareExportMiddleware::class,
Salin selepas log masuk
  1. Buat laluan

Akhirnya, Kita perlu membuat laluan untuk mengendalikan permintaan eksport. Buka fail route/web.php dan tambahkan kod berikut padanya:

Route::get('export', 'ExportController@export')->middleware('export');
Salin selepas log masuk
Salin selepas log masuk

Dalam laluan ini, kami mentakrifkan permintaan GET bernama eksport dan halakannya ke kaedah eksport( )ExportController. Lampirkan juga eksport middleware ke laluan ini supaya ExportMiddleware dilaksanakan sebelum permintaan mencapai pengawal Semua kerja yang diperlukan. Kami boleh menguji permintaan eksport menggunakan URL berikut:

http://localhost:8000/export?data=[{"id":1,"name":"John"},{"id":2,"name":"Jane"}]
Salin selepas log masuk
    Jika permintaan itu berjaya, anda akan menerima fail Excel bernama data.xlsx.
  1. Contoh kod penuh:

ExportMiddleware.php

<?php

namespace AppHttpMiddleware;

use Closure;
use Excel;

use MaatwebsiteExcelConcernsFromCollection;

class ExportMiddleware
{
    public function handle($request, Closure $next)
    {
        if (!$request->has('data')) {
            return response()->json([
                'message' => 'No data to export'
            ], 400);
        }

        $data = $request->get('data');

        return Excel::download(new ExportData($data), 'data.xlsx');
    }
}

class ExportData implements FromCollection
{
    protected $data;

    public function __construct($data)
    {
        $this->data = $data;
    }

    public function collection()
    {
        return collect($this->data);
    }
}
Salin selepas log masuk

ExportController.php

<?php

namespace AppHttpControllers;

class ExportController extends Controller
{
    public function export()
    {
        return response()->json([
            'message' => 'Export completed successfully'
        ]);
    }
}
Salin selepas log masuk
/web.php 🎜🎜#
Route::get('export', 'ExportController@export')->middleware('export');
Salin selepas log masuk
Salin selepas log masuk

app/Http/Kernel.php

protected $routeMiddleware = [
    ...
    'export' => AppHttpMiddlewareExportMiddleware::class,
];
Salin selepas log masuk

Ringkasan

Dalam artikel ini, kami mempelajari cara mengeksport data ke dokumen pertengahan Laravel. Kami mencipta perisian tengah baharu yang dipanggil ExportMiddleware untuk mengeksport data ke fail Excel menggunakan perpustakaan Laravel Excel dan mendaftarkan perisian tengah ini dalam aplikasi Laravel. Akhirnya, kami menguji permintaan eksport kami dan memeriksa fail Excel yang dieksport. Saya harap artikel ini berguna untuk eksport data menggunakan Laravel.

Atas ialah kandungan terperinci Cara menggunakan perisian tengah untuk eksport data dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan