Результаты запроса Laravel Collection - PullRequest
0 голосов
/ 30 августа 2018

В пользовательской команде ремесленника я пытаюсь получить доступ ко всем членам модели (например, пользователю) с помощью User::all().

Записи существуют в базе данных для этой модели, но User :: all () в команде просто возвращает "Illuminate\Database\Eloquent\Collection {#3308}" вместо фактических результатов. Dumper не показывает ни одного элемента в коллекции, просто показывает, сколько элементов коллекции имеет

Это, кажется, происходит только внутри команды, так как я могу получить результаты с помощью Tinker.

Кто-нибудь знает, почему это происходит?

1 Ответ

0 голосов
/ 30 августа 2018

Laravel использует класс Symfony VarCloner и в этом классе имеет атрибут $maxItems, который по умолчанию определен как 2500. ($maxItems из родительского класса)

Если вы хотите получить больше предметов, вы можете переопределить или расширить Illuminate/Support/Debug/Dumper.php класс

это по умолчанию

public function dump($value)
    {
        if (class_exists(CliDumper::class)) {
            $dumper = 'cli' === PHP_SAPI ? new CliDumper : new HtmlDumper;
            $dumper->dump((new VarCloner)->cloneVar($value));
        } else {
            var_dump($value);
        }
    }

Но вы можете сказать, что хотите сбросить больше предметов;

public function dump($value)
{
    if (class_exists(CliDumper::class)) {
        $dumper = 'cli' === PHP_SAPI ? new CliDumper : new HtmlDumper;
        $cloner = new VarCloner;
        $cloner->setMaxItems(4000);
        $dumper->dump($cloner->cloneVar($value));
    } else {
        var_dump($value);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...