Laravel Excel 安装

5
我刚刚使用了composer安装了Maatwebsite Laravel-Excel。我即将使用它,但是我对于安装和使用包还很陌生。到目前为止,我只使用过Laravel自带的内容。 我正在阅读文档并按照步骤操作(我已完成前三步),但是这一行让我感到困惑;
The class is binded to the ioC as excel

$excel = App::make('excel');

我并不完全了解这些内容的含义。我已经稍微了解了一下控制反转(ioC)和依赖注入(Dependency Injection),但我仍然不知道——这部分文档是在告诉我做什么??我在命令行上运行了php artisan(出于其他目的),然后得到了以下结果:

[2015-04-23 13:42:09] local.ERROR: exception 'BadMethodCallException' with message 'Call to undefined method [package]' in /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php:226
Stack trace:
#0 /vagrant/source/laravel-excel/vendor/maatwebsite/excel/src/Maatwebsite/Excel/ExcelServiceProvider.php(45): Illuminate\Support\ServiceProvider->__call('package', Array)
#1 /vagrant/source/laravel-excel/vendor/maatwebsite/excel/src/Maatwebsite/Excel/ExcelServiceProvider.php(45): Maatwebsite\Excel\ExcelServiceProvider->package('maatwebsite/exc...')
#2 [internal function]: Maatwebsite\Excel\ExcelServiceProvider->boot()
#3 /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Container/Container.php(523): call_user_func_array(Array, Array)
#4 /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(703): Illuminate\Container\Container->call(Array)
#5 /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(685): Illuminate\Foundation\Application->bootProvider(Object(Maatwebsite\Excel\ExcelServiceProvider))
#6 [internal function]: Illuminate\Foundation\Application->Illuminate\Foundation\{closure}(Object(Maatwebsite\Excel\ExcelServiceProvider), 19)
#7 /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(686): array_walk(Array, Object(Closure))
#8 /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(15): Illuminate\Foundation\Application->boot()
#9 /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(181): Illuminate\Foundation\Bootstrap\BootProviders->bootstrap(Object(Illuminate\Foundation\Application))
#10 /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(195): Illuminate\Foundation\Application->bootstrapWith(Array)
#11 /vagrant/source/laravel-excel/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(92): Illuminate\Foundation\Console\Kernel->bootstrap()
#12 /vagrant/source/laravel-excel/artisan(36): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 {main}

php artisan 在我从config/app.php中移除maatwebsite引用后成功运行 - 所以这里肯定还有更多要做,但我不知道具体是什么。

1个回答

3
似乎文档列出了错误的版本。1.x分支适用于Laravel 4.x。在GitHub页面上提供了更好的Laravel 5用户指南。尝试在composer.json中将版本更改为2.*,然后重新运行composer update。将正确的引用添加回你的app.php文件,你应该能够无误地运行php artisan。
此后,App::make('excel')命令也应该起作用了。

谢谢。我应该把App::make('excel')放在哪里?是在我的控制器中吗? - mikelovelyuk
1
无论您在何处需要Excel类的实例。App::make('excel')基本上与new \Maatwebsite\Laravel-Excel\Excel()相同,或者因为您已经在应用程序配置中添加了别名:new excel()。 - Maarten00
@Maarten00 我使用Composer安装了Excel,但现在我卡住了,不知道该如何继续创建模型或控制器,我应该从哪里开始...? - Hamelraj
@HamelRaj 嗯,这完全取决于您想要做什么以及您如何定义您的领域。我个人专门使用Laravel Eloquent模型进行数据库通信。因此,我会为业务逻辑创建一个单独的模型,并在其中使用Excel类。但最终还是取决于您自己的喜好。您可以在 Laravel 的 index.php 之外的任何地方使用 \App::make() 创建一个类的实例。甚至不必这样做,您也可以使用 Vanilla PHP 样式语句:'new \Maatwebsite\Laravel-Excel\Excel()' - Maarten00
@Maarten00 我有一个名为“jobs table”的表格,其中包含一些列。我想生成特定两个日期的文档,但我不知道安装后该怎么做下一步。 - Hamelraj
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接