@lil_koi
лучший из худших

Почему не находит класс?

Я начал использовать библиотеку Laravel Excel в проекте. Версия "maatwebsite/excel": "^3.1" . Моя задача выгрузить всю таблицу Post в эксель. Я по документации Создал файл InvoicesExport с кодом
<?php
namespace App\Exports;

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

class InvoicesExport implements FromCollection
{
    public function collection()
    {
        return Post::all();
    }
}

namespace соблюдаю. Дальше, у меня есть контроллер
<?php

namespace App\Http\Controllers;

use App\Post;
use App\Exports\InvoicesExport;
use Maatwebsite\Excel\Concerns\FromCollection;
class ExportExcelController extends Controller
{
	protected $post;

	public function __constructor(Post $post){
		$this->post = $post;
	}

    public function excel()
    {
    	return Excel::store(new InvoicesExport, 'invoices.xlsx', 's3');
     }
}

и мне выдаёт ошибку Class 'Maatwebsite\Excel' not found, что логично, ведь я его не объявил его нигде. Но в документации ни слова на эту тему, а если гуглить ошибку - "я вот перешёл на старую версию и вам советую". Какой путь у класса?
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Правильно выдаёт ошибку, В файле контроллера надо прописать:
use что-то\Excel;
вместо совершенно ненужного:
use Maatwebsite\Excel\Concerns\FromCollection;

Вероятно, должно быть прописано:

use Maatwebsite\Excel\Excel;

И причём здесь документация? Просто зайти в пакет Maatwebsite (на своём сервере или на https://github.com/Maatwebsite/Laravel-Excel/tree/...) и посмотреть namespace в файле Excel.php.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы