如何使用 maatwebsite/excel 在 laravel 6 中制作下拉列表?

How to make a dropdown list in laravel 6 with maatwebsite/excel?

提问人:tomasraigal 提问时间:7/25/2023 最后编辑:tomasraigal 更新时间:7/25/2023 访问量:23

问:

我需要知道如何使用 maatwebsite/excel 创建下拉列表。 问题是从表格中消除第 1、2、3 项......并留下 2 个下拉列表,一个包含截止日期的数量,另一个包含截止日期的状态。

这是我的导出类。

<?php

namespace App\Exports;

use Maatwebsite\Excel\Concerns\WithMultipleSheets;

class InformeExport implements WithMultipleSheets
{

    protected $lista;

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

    public function sheets(): array
    {
        $sheets = [];

        $sheets[] = new InformePlazosSheet($this->lista, 'Plazos');

        return $sheets;
    }
}

这是 InformePlazosSheet 文件。

<?php
namespace App\Exports;

use App\Models\Abonado;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\WithTitle;

class InformePlazosSheet implements FromView, WithTitle
{   

    private $lista;
    private $nombre;

    public function __construct($lista, $nombre)
    {
        $this->lista = $lista;
        $this->nombre = $nombre;
    }

    /**
     * @return Builder
     */
    public function view(): View
    {
        $abonados = Abonado::join('abonado_lista_abonado_plazos', 'abonado_lista_abonado.id', '=', 'abonado_lista_abonado_plazos.abonado_lista_abonado_id')
                ->where('abonado_lista_abonado.lista_id', $this->lista->id)
                ->select('abonado_lista_abonado.*')
                ->groupBy('abonado_lista_abonado.id')
                ->with('plazos')
                ->get();

        return view('exports.taquilla_plazos', [
            'abonados' => $abonados
        ]);
    }

    /**
     * @return string
     */
    public function title(): string
    {
        return $this->nombre;   
    }
}

?>

这是视图文件。

<table>
    <thead>
    <tr>
        <th>Abonado</th>
        <th>DNI</th>
        <th>Email</th>
        <th>Método de pago</th>
        <th>Titular de la cuenta</th>
        <th>Iban</th>
        <th>Plazo 1 - importe</th>
        <th>Plazo 1 - estado</th>
        <th>Plazo 2 - importe</th>
        <th>Plazo 2 - estado</th>
        <th>Plazo 3 - importe</th>
        <th>Plazo 3 - estado</th>
    </tr>
    </thead>
    <tbody>
    @foreach($abonados as $abonado)
        <tr>
            <td>{{ $abonado->getNombreCompleto() }}</td>
            <td>{{ $abonado->dni }}</td>
            <td>{{ $abonado->email }}</td>
            <td>{{ $abonado->metodoDePagoTostring() }}</td>
            <td>{{ $abonado->titular_cuenta }}</td>
            <td>{{ $abonado->iban }}</td>
            @foreach($abonado->plazos as $plazo)
                <td>
                    {{ App\Libraries\Utils::formatearPrecio($plazo->getImporteTotal()) }}
                </td>
                <td>
                    {{ $plazo->pagado ? 'Pagado (' . $plazo->getFechaPago() . ')' : 'Pago pendiente' }}
                </td>
            @endforeach
        </tr>
    @endforeach
    </tbody>
</table>

我看过文档,拉拉维尔演员表,尝试了很多东西,但我无法理解。 我正在使用 Laravel 6 和 php 7.4。如果可以的话,请帮帮我。

PHP Excel 拉拉维尔-6

评论


答: 暂无答案