Вспомогательная функция Laravel dd возвращает ошибку 500

kwargs - это просто словарь, который добавляется к параметрам.

Словарь может содержать пары ключей, значений. И это - кварты. Итак, как это сделать.

Что не так просто.

Например (очень гипотетический) у вас есть интерфейс, который просто вызывает другие процедуры для выполнения задания:

def myDo(what, where, why):
   if what == 'swim':
      doSwim(where, why)
   elif what == 'walk':
      doWalk(where, why)
   ...

Теперь вы получаете новый метод «drive»:

elif what == 'drive':
   doDrive(where, why, vehicle)

Но подождите минуту, появляется новый параметр «автомобиль» - вы этого не знали раньше. Теперь вы должны добавить его в подпись myDo-функции.

Здесь вы можете бросить kwargs в игру - вы просто добавляете kwargs в подпись:

def myDo(what, where, why, **kwargs):
   if what == 'drive':
      doDrive(where, why, **kwargs)
   elif what == 'swim':
      doSwim(where, why, **kwargs)

Таким образом вам не нужно менять подпись функции интерфейса каждый раз, когда некоторые из ваших подпрограмм могут измениться.

Это всего лишь один хороший пример, который вы могли бы найти полезными для kwargs.

1
задан kodfire 22 February 2019 в 09:56
поделиться

1 ответ

выглядит как ошибка в компоненте Symfony VarDumper , в /vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php рядом со строкой 101, замените

    if (null !== $this->projectDir) {
        $context['project_dir'] = $this->projectDir;
        if (0 === strpos($file, $this->projectDir)) {
            $context['file_relative'] = ltrim(substr($file, \strlen($this->projectDir)), \DIRECTORY_SEPARATOR);
        }
    }

на

    if (isset($this->projectDir) && is_string($this->projectDir) && strlen($this->projectDir) > 0) {
        $context['project_dir'] = $this->projectDir;
        if (0 === strpos($file, $this->projectDir)) {
            $context['file_relative'] = ltrim(substr($file, \strlen($this->projectDir)), \DIRECTORY_SEPARATOR);
        }
    }

, который должен это исправить ,

кто-то должен также подать отчет об ошибке, чтобы он был исправлен вверх по течению.

0
ответ дан hanshenrik 22 February 2019 в 09:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: