【问题标题】:Laravel Excel InstallationLaravel Excel 安装
【发布时间】:2015-04-24 02:03:26
【问题描述】:

我刚刚使用 composer 获取了 Maatwebsite Laravel-Excel。我即将使用它,但我对安装/使用软件包是全新的。到目前为止,我只使用了 Laravel 附带的东西。 我正在阅读 the documentation 并按照步骤操作(我已经完成了前三个步骤),但我对这一行感到困惑;

The class is binded to the ioC as excel

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

我真的不知道其中大部分是什么意思。我已经阅读了一些关于 ioC 的内容,然后阅读了依赖注入(对我来说也是新的)。但我仍然不知道 - 文档的这一部分是否告诉我做某事?我在命令行上运行了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 引用时成功运行 - 所以这里肯定还有更多工作要做,但我不知道是什么。

【问题讨论】:

    标签: php inversion-of-control laravel-5 phpexcel


    【解决方案1】:

    看起来文档列出了错误的版本。 1.x 分支适用于 Laravel 4.x。 GitHub page 为 Laravel 5 用户提供了更好的指南。尝试在您的 composer.json 中将版本更改为 2.* 并重新运行 composer update。将正确的引用添加回您的 app.php,您应该能够运行 php artisan 而不会出现错误。

    App::make('excel') 命令也应该在那之后工作。

    【讨论】:

    • 谢谢。我应该把 App::make('excel') 放在哪里?在我的控制器中?
    • 无论您在哪里需要 Excel 类的实例。 App::make('excel') 与 new \Maatwebsite\Laravel-Excel\Excel() 基本相同,或者因为您在应用配置中添加了别名: new excel()
    • @Maarten00 我使用 Composer 安装 Excel 我也卡住了,现在我不知道如何继续创建我必须开始的模型或控制器...?
    • @HamelRaj 这一切都取决于您要做什么以及如何定义您的域。我个人使用 Laravel Eloquent 模型专门用于数据库通信。所以我会为业务逻辑创建一个单独的模型并在那里使用 Excel 类。但这一切都取决于您自己的喜好。你可以在 Laravel 的 index.php 之外的任何地方使用 \App::make() 来创建一个类的实例。你甚至不需要,你也可以使用 vanilla-php 风格的语句:'new \Maatwebsite\Laravel-Excel\Excel()'
    • @Maarten00 我安装了,我仍然在这里混淆$excel = App::make('excel'); 但我输入了 php artisan tinker 然后输入了$excel = App::make('excel'); 所以我不知道这一步发生了什么我希望我的安装正确
    猜你喜欢
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 2015-01-14
    • 2014-12-08
    • 2013-05-28
    • 1970-01-01
    • 2017-05-22
    • 2017-08-30
    相关资源
    最近更新 更多