安装语言包报错了?Type error: Argument 1 passed to Illuminate\Translation\Translator::__const ruct () must implement interface Illuminate\Contracts\Translation\Loader, nu ll given, called in /home/Vagrant/Code/sample/vendor/Laravel/framework/src/ Illuminate/

之前一直没有任何问题,composer之后报错就回不去了 啊

@if (count($errors) > 0)
  <div class="alert alert-danger">
      <ul>
          @foreach($errors->all() as $error)
          <li>{{ $error }}</li>
          @endforeach
      </ul>
  </div>
@endif
@extends('layouts.default')
@section('title', '注册')

@section('content')
<div class="col-md-offset-2 col-md-8">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h5>注册</h5>
    </div>
    <div class="panel-body">
      @include('shared._errors')

      <form method="POST" action="{{ route('users.store') }}">
          {{ csrf_field() }}

          <div class="form-group">
            <label for="name">名称:</label>
            <input type="text" name="name" class="form-control" value="{{ old('name') }}">
          </div>

          <div class="form-group">
            <label for="email">邮箱:</label>
            <input type="text" name="email" class="form-control" value="{{ old('email') }}">
          </div>

          <div class="form-group">
            <label for="password">密码:</label>
            <input type="password" name="password" class="form-control" value="{{ old('password') }}">
          </div>

          <div class="form-group">
            <label for="password_confirmation">确认密码:</label>
            <input type="password" name="password_confirmation" class="form-control" value="{{ old('password_confirmation') }}">
          </div>

          <button type="submit" class="btn btn-primary">注册</button>
      </form>
    </div>
  </div>
</div>
@stop

file

vagrant@homestead:~/Code/sample$ composer require "overtrue/laravel-lang:~3.0"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover

In Translator.php line 60:

  Type error: Argument 1 passed to Illuminate\Translation\Translator::__const
  ruct() must implement interface Illuminate\Contracts\Translation\Loader, nu
  ll given, called in /home/vagrant/Code/sample/vendor/laravel/framework/src/
  Illuminate/Translation/TranslationServiceProvider.php on line 33

Script @php artisan package:discover handling the post-autoload-dump event retur                                                                                                                                                 ned with error code 1
vagrant@homestead:~/Code/sample$ composer require "overtrue/laravel-lang:~3.0"
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

刚好解决了这个问题,overtrue/laravel-lang 的一个bug,现在已经修复了,
定位到 vendor/overtrue/laravel-lang/src/TranslationServiceProvider.php ,在大概60行左右

protected function registerLoader()
{
    ...
    return (new FileLoader($app['files'], $app['path.lang'], $paths))
                ->addJsonPath($jsonPath);
}

这条错了,不能这样写,写成

protected function registerLoader()
{
    ...
    $loader = new FileLoader($app['files'], $app['path.lang'], $paths);
    $loader->addJsonPath($jsonPath);
    return $loader;
}

问题解决。

5年前 评论
讨论数量: 11

刚好解决了这个问题,overtrue/laravel-lang 的一个bug,现在已经修复了,
定位到 vendor/overtrue/laravel-lang/src/TranslationServiceProvider.php ,在大概60行左右

protected function registerLoader()
{
    ...
    return (new FileLoader($app['files'], $app['path.lang'], $paths))
                ->addJsonPath($jsonPath);
}

这条错了,不能这样写,写成

protected function registerLoader()
{
    ...
    $loader = new FileLoader($app['files'], $app['path.lang'], $paths);
    $loader->addJsonPath($jsonPath);
    return $loader;
}

问题解决。

5年前 评论
不温柔

Type error: Argument 1 passed to Illuminate\Translation\Translator::__const
ruct() must implement interface Illuminate\Contracts\Translation\Loader, nu
ll given, called in /home/vagrant/Code/sample/vendor/laravel/framework/src/
Illuminate/Translation/TranslationServiceProvider.php on line 33 :joy:

5年前 评论

有没有解决,刚刚安装这个包也出错了

5年前 评论
不温柔

没有啊,整个都卸了重装的

5年前 评论

前面的页面都打不开了,怎么取消啊

5年前 评论

同样的问题,我也遇到了

5年前 评论

我也是这个问题,但是我发现在本机中执行 composer require "overtrue/laravel-lang:~3.0" 是可以安装成功的, 在vagrant虚拟机中就报这个错误。具体原因还不知道

5年前 评论

刚好解决了这个问题,overtrue/laravel-lang 的一个bug,现在已经修复了,
定位到 vendor/overtrue/laravel-lang/src/TranslationServiceProvider.php ,在大概60行左右

protected function registerLoader()
{
    ...
    return (new FileLoader($app['files'], $app['path.lang'], $paths))
                ->addJsonPath($jsonPath);
}

这条错了,不能这样写,写成

protected function registerLoader()
{
    ...
    $loader = new FileLoader($app['files'], $app['path.lang'], $paths);
    $loader->addJsonPath($jsonPath);
    return $loader;
}

问题解决。

5年前 评论

我这样写也报错
protected function registerLoader()
{
...
$loader = new FileLoader($app['files'], $app['path.lang'], $paths);
$loader->addJsonPath($jsonPath);
$return $loader;
}

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_PARSE)
Parse error: syntax error, unexpected '$loader' (T_VARIABLE)

5年前 评论

@doderic 确实是这样,可以了,一个小瑕疵:“$return $loader;” 应该是“return $loader;”

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!