当我在第 51 行 运行 php artisan migrate 命令时出错
error when i run php artisan migrate command on line 51
当我在终端中 运行 php artisan migrate 命令时,我只剩下这个了。
ParseError
syntax error, unexpected ')'
at C:\laragon\www\testnum2\vendor\laravel\framework\src\Illuminate\Bus\BusServiceProvider.php:51
47▕ return new DatabaseBatchRepository(
48▕ $app->make(BatchFactory::class),
49▕ $app->make('db')->connection(config('queue.batching.database')),
50▕ config('queue.batching.table', 'job_batches'),
➜ 51▕ );
52▕ });
53▕ }
54▕
55▕ /**
1 C:\laragon\www\testnum2\vendor\composer\ClassLoader.php:322
Composer\Autoload\includeFile("C:\laragon\www\testnum2\vendor\composer/../laravel/framework/src/Illuminate/Bus/BusServiceProvider.php")
2 [internal]:0
Composer\Autoload\ClassLoader::loadClass("Illuminate\Bus\BusServiceProvider")
PS C:\laragon\www\testnum2>
我不太确定是什么原因造成的,但这是导致错误的那个文件的代码。
<?php
namespace Illuminate\Bus;
use Illuminate\Contracts\Bus\Dispatcher as DispatcherContract;
use Illuminate\Contracts\Bus\QueueingDispatcher as QueueingDispatcherContract;
use Illuminate\Contracts\Queue\Factory as QueueFactoryContract;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Support\ServiceProvider;
class BusServiceProvider extends ServiceProvider implements DeferrableProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app->singleton(Dispatcher::class, function ($app) {
return new Dispatcher($app, function ($connection = null) use ($app) {
return $app[QueueFactoryContract::class]->connection($connection);
});
});
$this->registerBatchServices();
$this->app->alias(
Dispatcher::class, DispatcherContract::class
);
$this->app->alias(
Dispatcher::class, QueueingDispatcherContract::class
);
}
/**
* Register the batch handling services.
*
* @return void
*/
protected function registerBatchServices()
{
$this->app->singleton(BatchRepository::class, DatabaseBatchRepository::class);
$this->app->singleton(DatabaseBatchRepository::class, function ($app) {
return new DatabaseBatchRepository(
$app->make(BatchFactory::class),
$app->make('db')->connection(config('queue.batching.database')),
config('queue.batching.table', 'job_batches'),
);
});
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return [
Dispatcher::class,
DispatcherContract::class,
QueueingDispatcherContract::class,
BatchRepository::class,
];
}
}
我希望这足以获得帮助。
我还想提一下,我以前使用过 php artisan migrate,最近我不得不升级一些东西,比如 composer 和 phpmyadmin
问题是您使用的 PHP 版本(低于 7.3)不支持函数调用中的尾随逗号。
请阅读:Trailing Commas are allowed in Calls
解决方案是切换到> PHP 7.3
我的问题是我的 PHP <7.3
但是当我简单地在 phpinfo 文件中检查它时,它显示为 7.4.11。
@lagbox 帮我说:“你的系统有不同的版本,CLI 和网络服务器可以有不同的配置”
老实说,我不确定该怎么做,但是我决定从我的 PATH.
中删除 PHP 7.2
- 我希望它能识别出我使用的是 7.4,令我惊讶的是它识别出来了。
- 此外,我确信有更有效的方法可以做到这一点,但那是我选择的方式。
当我在终端中 运行 php artisan migrate 命令时,我只剩下这个了。
ParseError
syntax error, unexpected ')'
at C:\laragon\www\testnum2\vendor\laravel\framework\src\Illuminate\Bus\BusServiceProvider.php:51
47▕ return new DatabaseBatchRepository(
48▕ $app->make(BatchFactory::class),
49▕ $app->make('db')->connection(config('queue.batching.database')),
50▕ config('queue.batching.table', 'job_batches'),
➜ 51▕ );
52▕ });
53▕ }
54▕
55▕ /**
1 C:\laragon\www\testnum2\vendor\composer\ClassLoader.php:322
Composer\Autoload\includeFile("C:\laragon\www\testnum2\vendor\composer/../laravel/framework/src/Illuminate/Bus/BusServiceProvider.php")
2 [internal]:0
Composer\Autoload\ClassLoader::loadClass("Illuminate\Bus\BusServiceProvider")
PS C:\laragon\www\testnum2>
我不太确定是什么原因造成的,但这是导致错误的那个文件的代码。
<?php
namespace Illuminate\Bus;
use Illuminate\Contracts\Bus\Dispatcher as DispatcherContract;
use Illuminate\Contracts\Bus\QueueingDispatcher as QueueingDispatcherContract;
use Illuminate\Contracts\Queue\Factory as QueueFactoryContract;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Support\ServiceProvider;
class BusServiceProvider extends ServiceProvider implements DeferrableProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app->singleton(Dispatcher::class, function ($app) {
return new Dispatcher($app, function ($connection = null) use ($app) {
return $app[QueueFactoryContract::class]->connection($connection);
});
});
$this->registerBatchServices();
$this->app->alias(
Dispatcher::class, DispatcherContract::class
);
$this->app->alias(
Dispatcher::class, QueueingDispatcherContract::class
);
}
/**
* Register the batch handling services.
*
* @return void
*/
protected function registerBatchServices()
{
$this->app->singleton(BatchRepository::class, DatabaseBatchRepository::class);
$this->app->singleton(DatabaseBatchRepository::class, function ($app) {
return new DatabaseBatchRepository(
$app->make(BatchFactory::class),
$app->make('db')->connection(config('queue.batching.database')),
config('queue.batching.table', 'job_batches'),
);
});
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return [
Dispatcher::class,
DispatcherContract::class,
QueueingDispatcherContract::class,
BatchRepository::class,
];
}
}
我希望这足以获得帮助。 我还想提一下,我以前使用过 php artisan migrate,最近我不得不升级一些东西,比如 composer 和 phpmyadmin
问题是您使用的 PHP 版本(低于 7.3)不支持函数调用中的尾随逗号。
请阅读:Trailing Commas are allowed in Calls
解决方案是切换到> PHP 7.3
我的问题是我的 PHP <7.3
但是当我简单地在 phpinfo 文件中检查它时,它显示为 7.4.11。
@lagbox 帮我说:“你的系统有不同的版本,CLI 和网络服务器可以有不同的配置”
老实说,我不确定该怎么做,但是我决定从我的 PATH.
中删除 PHP 7.2- 我希望它能识别出我使用的是 7.4,令我惊讶的是它识别出来了。
- 此外,我确信有更有效的方法可以做到这一点,但那是我选择的方式。