Как экспортировать данные с заголовком в lave (maatwebsite)?

Поэтому я использую эту команду для экспорта одной детали продукта. При экспорте я также хочу экспортировать заголовок. Итак, как я могу экспортировать как данные, так и заголовок данных?

composer require maatwebsite/excel

В продукте (index.blade.php)

@foreach($products as $product)
    <tr>{{$product->name}}</tr>
        <tr>{{$product->price}}</tr> 
        <tr><a href = "{{route('prodcutExport',$product->id)}}">Export Product Detail</></tr>
@endforeach

В ProductController.php

 public function export()
    {
    
    $products = Product::where('id',1)->get();    
    return Excel::download(new ProductExport($products), 'patient.xlsx');
   }

В ProductExport.php


namespace App\Exports;

use App\Product;
use Maatwebsite\Excel\Concerns\FromCollection;

class ProductExport implements FromCollection
{
  
    public function __construct($products)
    {
        $this->products = $products;
     }


    public function collection() 
    {
        return $this->products;
    }
  
    public function headings()  //How can i export this
    {
        return [
          'Name','Price','Colour','Created At'
          ]
    }
}

Покажите нам весь код ProductExport класса, пожалуйста.

Zakaria Acharki 25.12.2020 09:43

@ZakariaAcharki да, я показал свой полный код

Beginner Coder 25.12.2020 10:01
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
2
2
801
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно добавить WithHeadings к вашему классу:

namespace App\Exports;

use App\Product;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;

class ProductExport implements FromQuery, WithHeadings
{  
    public function __construct($products)
    {
        $this->products = $products;
     }


    public function collection() 
    {
        return $this->products;
    }
  
    public function headings(): array
    {
        return [
          'Name','Price','Colour','Created At'
          ]
    }
}

и ? что за это? общедоступные заголовки функций () .. это показывает ошибку в этом

Beginner Coder 25.12.2020 10:37

Это должно добавить «Заголовки» к экспортируемым данным. разве это не то, что вам нужно?

Zakaria Acharki 25.12.2020 10:38

если вы не возражаете. можете ли вы привести небольшой пример, пожалуйста?

Beginner Coder 25.12.2020 10:39

да, я не знаю, почему он показывает ошибку в заголовках общедоступных функций () {}. В нем говорится, что объявление возвращаемого типа должно быть совместимо с withHeadings()->headings():array

Beginner Coder 25.12.2020 10:49

Попробуйте с public function headings(): array увидеть обновленный код.

Zakaria Acharki 25.12.2020 10:51

Не удалось обнаружить ни ReaderType, ни WriterType. Убедитесь, что вы либо передаете допустимое расширение имени файла, либо передаете явный тип.

Beginner Coder 25.12.2020 11:22

Другие вопросы по теме