Как исправить laravel 5.2 эту ошибку "Достигнут максимальный уровень гнездования" 100 ", прерванный!"?
Я пытаюсь использовать reset пароль из laravel автоматически созданного модуля аутентификации входа/регистрации. Когда я нажимаю на кнопку reset, она дает мне эту ошибку
FatalErrorException in ClassLoader.php line 344:
Maximum function nesting level of '100' reached, aborting!
Я искал об этом и нашел принятый ответ, но этот ответ не работает на моей стороне, я выполнил инструкцию. Может ли кто-нибудь навестить меня, это ошибка laravel или wamp? и как это исправить. Я хотел бы оценить.
Ответы
Ответ 1
Проблема вызвана значением по умолчанию xdebug.max_nesting_level, которое равно 100.
Обходной путь на данный момент состоит в том, чтобы увеличить xdebug.max_nesting_level до определенного уровня, скажем 200 или 300 или 400.
Я исправил мою, увеличив xdebug.max_nesting_level до 120, добавив строку ниже bootstrap/autoload.php
в Laravel 5.1
ini_set('xdebug.max_nesting_level', 120);
............
define('LARAVEL_START', microtime(true));
Ответ 2
В моем случае я случайно присвоил одно и то же имя как методу класса, так и импортированной черте, в результате чего цикл $this-> doThis() → $this-> doThis() → $this-> doThis ( ) → $this-> doThis()...
Ответ 3
У меня было это при звонке
Illuminate\Database\Eloquent\Model->toArray()
в модели User
которая имеет отношение к модели Address
, когда модель Address
имеет отношение к той же модели User
... это был цикл.
Это был цикл, который сломался - toArray()
Ошибка, которую я получил на своем Laravel 5.7, была:
Достигнут максимальный уровень вложенности функций '512', прерывание!
Решение
перейдите к модели адреса и добавьте защищенный атрибут
protected $hidden = ['user']; // for toArray
Ответ 4
Просто поместите строку
ini_set('xdebug.max_nesting_level', 120);
в файле bootstrap/autoload.php в Laravel 5.2
Прекрасно работает для меня.
Ответ 5
Обычно это происходит потому, что вы загружаете отношения из двух моделей одновременно чем-то вроде $with
свойством.
Допустим, у Category
много Product
и Product
принадлежит Category
.
Если в обеих моделях, загрузив отношения по умолчанию, как это: в Product
модели $with=['category']
, в Category
модели $with=['products']
это привело бы к этому бесконечному вложению. Итак, чтобы решить эту нагрузку, отношения только когда захотелось.
Ответ 6
У меня была глобальная область действия в моей пользовательской модели, которая использовала Auth :: check(), вызывая цикл.