"Класс 'App\Http\Controllers\InvoicesExport' не найден" в Maatwebsite Laravel

В моем проекте Laravel я использую Maatwebsite\Excel для экспорта данных в формате Excel. я использую новую версию 3.0 (Maatwebsite\Excel)

Приложение /Exports.php

namespace App\Exports;
use App\Purchasepaymenttransaction;

use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;

class InvoicesExport implements FromView
{
    public function view(): View
    {
            $purchasepayment=Purchasepaymenttransaction::Where('transaction_category',2)->OrderBy('transaction_date','DESC')->get();

        return view('exports.purchasepayments', [
            'purchasepayment' => $purchasepayment
        ]);
    }
}

В моем контроллере платежей

<?php

namespace App\Http\Controllers;
use DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use App\Purchasepaymenttransaction;
use Excel;
use App\Exports;

class PaymentController extends Controller
{

    public function purchaseexport()
        {

            return Excel::download(new InvoicesExport, 'invoices.xlsx');
        }

}

я получил сообщение об ошибке "Class 'App\Http\Controllers\InvoicesExport' not found"

3 ответа

return Excel::download(new \InvoicesExport, 'invoices.xlsx');

Обычно вы используете обратную косую черту ('\') перед классом, когда вы получаете исключение класса не найден. Он автоматически найдет этот класс из вашего кода и использует его там, где вам нужно, и не требует его использования вверху файла. Это похоже на

use [YOUR_PATH]/InvoicesExport

Если вы используете выражение "use", то нет необходимости использовать обратную косую черту ('\'). Вы можете использовать любой из двух выше. Это будет работать.

Обновите верхнюю часть вашего Платежного контроллера до этого

      namespace App\Http\Controllers;
use DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use App\Purchasepaymenttransaction;
use App\Exports\InvoicesExport;
use Maatwebsite\Excel\Facades\Excel;

тогда все готово. Также обновите строку в файле InvoicesExport сuse App\Purchasepaymenttransaction;кuse App\Models\Purchasepaymenttransaction;

используйте App\Exports\InvoicesExport как ExportsInvoicesExport;

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