Voyager:“@php artisan package:discover --ansi 处理返回的 post-autoload-dump 事件,错误代码为 1”
Posted
技术标签:
【中文标题】Voyager:“@php artisan package:discover --ansi 处理返回的 post-autoload-dump 事件,错误代码为 1”【英文标题】:Voyager: "@php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1" 【发布时间】:2020-11-19 14:53:35 【问题描述】:一直在其他项目中使用 tcg/voyager 包,到现在为止我没有遇到任何问题。
尝试在新项目中安装它会抛出这个错误
Call to undefined method Illuminate\Auth\DatabaseUserProvider::getModel()
at C:\xampp\htdocs\laravel\Veachy backs\Veachy (voyager admin)\vendor\tcg\voyager\src\VoyagerServiceProvider.php:101
97| */
98| public function boot(Router $router, Dispatcher $event)
99|
100| if (config('voyager.user.add_default_role_on_register'))
> 101| $model = Auth::guard(app('VoyagerGuard'))->getProvider()->getModel();
102| call_user_func($model.'::created', function ($user) use ($model)
103| if (is_null($user->role_id))
104| call_user_func($model.'::findOrFail', $user->id)
105| ->setRole(config('voyager.user.default_role'))
1 C:\xampp\htdocs\laravel\Veachy backs\Veachy (voyager admin)\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:37
TCG\Voyager\VoyagerServiceProvider::boot(Object(Illuminate\Routing\Router), Object(Illuminate\Events\Dispatcher))
2 C:\xampp\htdocs\laravel\Veachy backs\Veachy (voyager admin)\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:37
call_user_func_array()
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
此错误将在任何下一个 php artisan 命令中出现,直到我删除包。
在出现此错误之前,我需要将作曲家内存从 512M 更新到 2G。不知道有没有关系。
在安装包之前已经更新了composer。
版本信息 Laravel:v 7.22.4 PHP:7.3.12
谢谢大家,
费尔南多
【问题讨论】:
【参考方案1】:我遇到了同样的问题,因为我的项目使用 'api' 作为默认保护而不是 “网络”(配置\auth.php):
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Defaults
|--------------------------------------------------------------------------
|
| This option controls the default authentication "guard" and password
| reset options for your application. You may change these defaults
| as required, but they're a perfect start for most applications.
|
*/
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
解决方法是将“app\Providers\AppServiceProvider.php”中的“VoyageGuard”设置为您选择的防护(网络):
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
/**
* Register any application services.
*
* @return void
*/
public function register()
$this->app->singleton('VoyagerGuard', function ()
return 'web';
);
现在 Voyager 将使用 web 防护而不是 api 防护。
最好的问候
【讨论】:
以上是关于Voyager:“@php artisan package:discover --ansi 处理返回的 post-autoload-dump 事件,错误代码为 1”的主要内容,如果未能解决你的问题,请参考以下文章