Якщо ви отримуєте повідомлення про помилку "No such entity.", "No such entity with" або "No such entity with customerId" в Magento 2, проблема зазвичай виникає під час спроби завантажити неіснуючий об'єкт за допомогою класу сховища Magento 2.
Щоб вирішити цю поширену помилку в Magento, відкрийте файл
vendor/magento/framework/Exception/NoSuchEntityException.php
і на початку методу __construct тимчасово додайте debug backtrace code:
foreach (debug_backtrace() as $_stack) {
echo ($_stack["file"] ? $_stack["file"] : '') . ':' .
($_stack["line"] ? $_stack["line"] : '') . ' - ' .
($_stack["function"] ? $_stack["function"] : '');
}
exit();
приклад:
public function __construct(Phrase $phrase = null, \Exception $cause = null, $code = 0)
{
foreach (debug_backtrace() as $_stack) {
echo ($_stack["file"] ? $_stack["file"] : '') . ':' .
($_stack["line"] ? $_stack["line"] : '') . ' - ' .
($_stack["function"] ? $_stack["function"] : '');
}
exit();
if ($phrase === null) {
$phrase = new Phrase('No such entity.');
}
parent::__construct($phrase, $cause, $code);
}
збережіть файл та оновіть сторінку.
Ви побачите debug backtrace, яка дозволить вам визначити джерело проблеми, і ви зрозумієте, як це виправити.
Зазвичай сторонні розширення Magento 2 призводять до цієї проблеми, тому ви можете замінити їхній код і додати виняток "try-catch".
Не забудьте повернути зміни у файл NoSuchEntityException.php після завершення.