laravel artisan 使用未定义常量 STDIN - 假定 'STDIN' 无限循环
laravel artisan use of undefined constant STDIN - assumed 'STDIN' infinite loop
我正在使用 laravel 5.6 并遇到问题,当我在控制台中使用命令 "php artisan vendor:publish" 时,出现以下错误:
[ERROR] Use of undefined constant STDIN - assumed 'STDIN'
Which provider or tag's files would you like to publish?
[0] Publish files from all providers and tags listed below
[1] Provider: Intervention\Image\ImageServiceProviderLaravel5
问题是,这些消息似乎无穷无尽,直到我关闭控制台或很长时间后它才终止进程。
我在 google 上查找了这个问题,但只发现了 stdin 的问题,不同的是,遇到这个问题的人并没有在命令行中调用 artisan界面,但直接在 php 脚本中。
使用"php artisan migrate"
时出现同样的问题
我找到了问题的解决方案:
我必须将以下行添加到 artisan 文件(在 laravel 目录中)。
define('STDIN',fopen("php://stdin","r"));
现在可以了。
还是很奇怪,因为通常 artisan 应该可以工作 out-of-the-box,不需要更改任何东西。
要检查的一件事是确保您运行为 Laravel.
版本选择了正确的 PHP 版本
php -v
将显示 php 版本
我很惊讶地发现 PHP 的 CLI 版本(artisan 使用的)真的很旧。
我没有意识到我的共享主机安装了很多不同版本的PHP。
我能够 运行 artisan 命令,方法是使用与我需要使用的 PHP 版本相对应的命令:php7.1 artisan migrate
我在 运行 artisan 命令播种数据库表时遇到了上述问题:Artisan::call('db:seed', [...])
在生产中。
添加 --force
标志解决了我的问题
Artisan::call('db:seed', [
'--force' => true
])
如果您正在生产中,请确保使用 --force
标志。
添加
if(! defined('STDIN')) define('STDIN', fopen("php://stdin","r"));
到您的 index.php
文件。我尝试将它添加到 artisan
文件但没有成功,但将它放在 index.php
中就成功了。
我的 PHP 版本是 Ubuntu 18.04
上的 v.7.4
这个问题是由应用环境引起的。
将应用程序环境更改为 local
或在 artisan 命令后添加 --force
参数。
我正在使用 laravel 5.6 并遇到问题,当我在控制台中使用命令 "php artisan vendor:publish" 时,出现以下错误:
[ERROR] Use of undefined constant STDIN - assumed 'STDIN'
Which provider or tag's files would you like to publish?
[0] Publish files from all providers and tags listed below
[1] Provider: Intervention\Image\ImageServiceProviderLaravel5
问题是,这些消息似乎无穷无尽,直到我关闭控制台或很长时间后它才终止进程。
我在 google 上查找了这个问题,但只发现了 stdin 的问题,不同的是,遇到这个问题的人并没有在命令行中调用 artisan界面,但直接在 php 脚本中。
使用"php artisan migrate"
时出现同样的问题我找到了问题的解决方案:
我必须将以下行添加到 artisan 文件(在 laravel 目录中)。
define('STDIN',fopen("php://stdin","r"));
现在可以了。
还是很奇怪,因为通常 artisan 应该可以工作 out-of-the-box,不需要更改任何东西。
要检查的一件事是确保您运行为 Laravel.
版本选择了正确的 PHP 版本php -v
将显示 php 版本
我很惊讶地发现 PHP 的 CLI 版本(artisan 使用的)真的很旧。
我没有意识到我的共享主机安装了很多不同版本的PHP。
我能够 运行 artisan 命令,方法是使用与我需要使用的 PHP 版本相对应的命令:php7.1 artisan migrate
我在 运行 artisan 命令播种数据库表时遇到了上述问题:Artisan::call('db:seed', [...])
在生产中。
添加 --force
标志解决了我的问题
Artisan::call('db:seed', [
'--force' => true
])
如果您正在生产中,请确保使用 --force
标志。
添加
if(! defined('STDIN')) define('STDIN', fopen("php://stdin","r"));
到您的 index.php
文件。我尝试将它添加到 artisan
文件但没有成功,但将它放在 index.php
中就成功了。
我的 PHP 版本是 Ubuntu 18.04
这个问题是由应用环境引起的。
将应用程序环境更改为 local
或在 artisan 命令后添加 --force
参数。