在控制器内部使用Excel包的Laravel
我尝试在控制器内部的laravel上使用在控制器内部使用Excel包的Laravel,laravel,laravel-5,Laravel,Laravel 5,我尝试在控制器内部的laravel上使用Excel:@package maatwebsite/Excelpackage,但我得到以下错误: Non-static method Maatwebsite\Excel\Excel::create() should not be called statically, assuming $this from incompatible context 我的路线是: Route::get('all_users_report/{format}', 'Syst
Excel:@package maatwebsite/Excel
package,但我得到以下错误:
Non-static method Maatwebsite\Excel\Excel::create()
should not be called statically, assuming $this from incompatible context
我的路线是:
Route::get('all_users_report/{format}', 'SystemExportDataController@all_users_report');
class SystemExportDataController extends Controller
{
/**
* @param $format
*/
public function all_users_report($format)
{
Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('My Site - all users report', function ($sheet) use ($format) {
........
});
})->export($format);
}
}
BadMethodCallException in ServiceProvider.php line 234:
Call to undefined method [package]
我的控制器是:
Route::get('all_users_report/{format}', 'SystemExportDataController@all_users_report');
class SystemExportDataController extends Controller
{
/**
* @param $format
*/
public function all_users_report($format)
{
Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('My Site - all users report', function ($sheet) use ($format) {
........
});
})->export($format);
}
}
BadMethodCallException in ServiceProvider.php line 234:
Call to undefined method [package]
发布更新2
'providers' => [
...
'Maatwebsite\Excel\ExcelServiceProvider'
],
'aliases' => [
...
'Excel' => 'Maatwebsite\Excel\Facades\Excel'
],
错误:
Route::get('all_users_report/{format}', 'SystemExportDataController@all_users_report');
class SystemExportDataController extends Controller
{
/**
* @param $format
*/
public function all_users_report($format)
{
Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('My Site - all users report', function ($sheet) use ($format) {
........
});
})->export($format);
}
}
BadMethodCallException in ServiceProvider.php line 234:
Call to undefined method [package]
更新3:
Route::get('all_users_report/{format}', 'SystemExportDataController@all_users_report');
class SystemExportDataController extends Controller
{
/**
* @param $format
*/
public function all_users_report($format)
{
Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('My Site - all users report', function ($sheet) use ($format) {
........
});
})->export($format);
}
}
BadMethodCallException in ServiceProvider.php line 234:
Call to undefined method [package]
全级控制器:
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use Maatwebsite\Excel\Excel;
class SystemExportDataController extends Controller
{
public function all_users_report($format)
{
Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('Epay.Li - all users report', function ($sheet) use ($format) {
$all_records = ChangeMoney::all();
$sheet->loadView('layouts.admin.all_users_report',
array(
'all_records' => $all_records,
)
);
});
})->export($format);
}
}
您应该在config/app.php
中的Facades数组中添加'Excel'=>'Maatwebsite\Excel\Facades\Excel'
,并在提供者中添加'Maatwebsite\Excel\ServiceProvider'
,以便按照您的方式使用它
或者您可以使用$excel=App::make('excel')创建类的实例然后$excel->创建(…
)
更新
有两种方法可以调用Excel包:
其中之一是使用facade,但您必须在config/app.php
中的Facades数组中添加'Excel'=>'Maatwebsite\Excel\Facades\Excel'
,然后
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
class SystemExportDataController extends Controller
{
public function all_users_report($format)
{
Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('Epay.Li - all users report', function ($sheet) use ($format) {
$all_records = ChangeMoney::all();
$sheet->loadView('layouts.admin.all_users_report',
array(
'all_records' => $all_records,
)
);
});
})->export($format);
}
}
您应该在config/app.php
中将'Excel'=>'Maatwebsite\Excel\Facades\Excel'
添加到Facades数组中,并将'Maatwebsite\Excel\Excel\ServiceProvider'
添加到您的提供者中,以便按您的方式使用它
或者您可以使用$excel=App::make('excel');
然后$excel->create(…
)创建类的实例
更新
有两种方法可以调用Excel包:
其中之一是使用facade,但您必须在config/app.php
中的Facades数组中添加'Excel'=>'Maatwebsite\Excel\Facades\Excel'
,然后
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
class SystemExportDataController extends Controller
{
public function all_users_report($format)
{
Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('Epay.Li - all users report', function ($sheet) use ($format) {
$all_records = ChangeMoney::all();
$sheet->loadView('layouts.admin.all_users_report',
array(
'all_records' => $all_records,
)
);
});
})->export($format);
}
}
我发现我需要预先添加一个反斜杠(表示),以确保它使用了Facade。这将使您的调用如下所示:
\Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('Epay.Li - all users report', function ($sheet) use ($format) {
$all_records = ChangeMoney::all();
$sheet->loadView('layouts.admin.all_users_report',
array(
'all_records' => $all_records,
)
);
});
})->export($format);
我发现我需要预先添加一个反斜杠(表示),以确保它使用了Facade。这将使您的调用如下所示:
\Excel::create('all_users_records', function ($excel) use ($format) {
$excel->sheet('Epay.Li - all users report', function ($sheet) use ($format) {
$all_records = ChangeMoney::all();
$sheet->loadView('layouts.admin.all_users_report',
array(
'all_records' => $all_records,
)
);
});
})->export($format);
调用静态方法(如Excel::create())时,请使用Use-Maatwebsite\Excel\Facades\Excel
notUse-Maatwebsite\Excel\Excel;
当调用静态方法(如Excel::create())时,请使用Use-Maatwebsite\Excel\Facades\Excel
我已经编辑了我的帖子,但是如果你想使用facade,你只需添加它,以及config/app.php中的提供者,就可以了。无需创建新实例:)您安装了软件包的第2版吗?composer需要maatwebsite/excel:2.*
并请运行composer dumpautoload
和php artisan clear compiled
谢谢,请让我安装并测试该软件包,谢谢。我得到错误:(非静态方法maatwebsite\excel\excel::create()不应该静态调用,假设$this来自不兼容的上下文
我粘贴了完整的类控制器i'm sorry sir,i get errorclass excel不存在
我已经编辑了我的帖子,但是如果你想使用facade,你只需要添加它,以及config/app.php
中的提供者,就可以了。不需要做任何更改w实例:)您安装了软件包的版本2吗?composer需要maatwebsite/excel:2.*
并请运行composer dumpautoload
和php artisan clear compiled
谢谢,请让我安装并测试该软件包,谢谢先生。我得到错误:(非静态方法maatwebsite\excel\excel::create()不应静态调用,假设$this来自不兼容的上下文
我粘贴了完整的类控制器i很抱歉,先生,我得到错误类excel不存在