Laravel php ремесленник бросает тинкер ErrorException
Если я бегу php artisan tinker
на моей консоли вывод:
[ErrorException] in_array () ожидает, что параметр 2 будет массивом, задана строка
И если я бегу php artisan tinker --verbose
выход:
Трассировка исключений: () в C:\wamp\www\store\vendor\psy\psysh\src\Psy\ConfigPaths.php:161 Подсветить \Foundation\Bootstrap\HandleExceptions->handleError() в n/a:n/a in_array() в C:\wamp\www\store\vendor\psy\psysh\src\Psy\ConfigPaths.php:161 Psy\ConfigPaths::getDirNames() в C:\wamp\www\store\vendor\psy\psysh\src\Psy\ConfigPaths.php:35 Psy\ConfigPaths::getConfigDirs() в C:\wamp\www\store\vendor\psy\psysh\src\Psy\ConfigPaths.php:89 Psy\ConfigPaths::getConfigFiles() в C:\wamp\www\store\vendor\psy\psysh\src\Psy\Configuration.php:146 Psy\Configuration->getConfigFile() в C:\wamp\www\store\vendor\psy\psysh\src\Psy\Configuration.php:117 Psy\Configuration->init() в C:\wamp\www\store\vendor\psy\psysh\src\Psy\Configuration.php:98 Psy\Configuration->__construct() в C:\wamp\www\store\vendor\laravel\framework\src\Illuminate\Foundation\Console\TinkerCommand.php:44 Осветить \Foundation\Console\TinkerCommand->fire() в n/a:n/a call_user_func_array() в C: \ wamp \ www \ store \ vendor \ laravel \ framework \ src \ Подсветка \Container\Container.php:503 Подсветка \Container\Container->call() в C:\wamp\www\store\vendor\laravel\framework\src\Illuminate\Console\Command.php:150 Подсветка \ Консоль \Command->execute() в C:\wamp\www\store\vendor\symfony\console\Command\Command.php:256 Symfony\Component\Console\Command\Command->run() в C:\wamp\www\store\vendor\laravel\framework\src\Illuminate\Console\Command.php:136 Подсветка \Console\Command->run() в C:\wamp\www\store\vendor\symfony\console\Application.php:838 Symfony\Component\Console\Application->doRunCommand() в C:\wamp\www\store\vendor\symfony\console\Application.php:189 Symfony\Component\Console\Application->doRun() в C:\wamp\www\store\vendor\symfony\console\Application.php:120 Symfony\Component\Console\Application->run() в C:\wamp\www\store\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php:107 Подсветить \Foundation\Console\Kernel->handle() в C:\wamp\www\store\artisan:36
Дополнительно:
Моя версия Laravel - 5.1.24.
Я только что установил Zizaco / поручаю
Кроме этого, приложение почти пустое
РЕДАКТИРОВАТЬ:
Вот функция, виновная в ошибке внутри ConfigPaths.php:
private static function getDirNames(array $baseDirs) {
$dirs = array_map(function ($dir) {
return strtr($dir, '\\', '/') . '/psysh';
}, $baseDirs);
// Add ~/.psysh
if ($home = getenv('HOME')) {
$dirs[] = strtr($home, '\\', '/') . '/.psysh';
}
// Add some Windows specific ones :)
if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
if ($appData = getenv('APPDATA')) {
// AppData gets preference
array_unshift($dirs, strtr($appData, '\\', '/') . '/PsySH');
}
$dir = strtr(getenv('HOMEDRIVE') . '/' . getenv('HOMEPATH'), '\\', '/') . '/.psysh';
if (!in_array($dirs, $dir)) {
$dirs[] = $dir;
}
}
return $dirs;
}
Если у кого-то есть такая же проблема, вот как я ее решил:
# add (array) before $dir
if (!in_array($dirs, (array)$dir)) {
$dirs[] = $dir;
}
Заранее спасибо!
2 ответа
Решение
Проверьте значения в C:\wamp\www\store\vendor\psy\psysh\src\Psy\ConfigPaths.php, кажется, что с этими значениями что-то не так, потому что, когда скрипт вызывает функцию in_array, не получает правильные значения
Это случилось и со мной.
выполнять composer update
и обновите пакет, чтобы psy/psysh (v0.6.1) устранил проблему.