ตกลงเพื่อให้เกิดข้อผิดพลาดมาจากNo such entity.
\lib\internal\Magento\Framework\Exception\NoSuchEntityException.php
คลาสนี้เป็นคลาสยกเว้นที่กำหนดเองของ Magento และมีการใช้งานมากใน Magento 2
เมื่อใดก็ตามที่คุณเห็นรหัสเช่น:
catch (NoSuchEntityException $e)
หรือ
throw NoSuchEntityException;
กำลังใช้คลาสนี้อยู่
ปัญหาในกรณีของคุณคือมันยากที่จะค้นหาว่ามีการโยนข้อยกเว้นนั้นไปที่ไหน
ดังนั้นเมื่อต้องการ จำกัด ให้แคบลงคุณสามารถเริ่มต้นการดีบักสองคลาสที่เกี่ยวข้องกับดัชนีของคุณที่ล้มเหลว:
Magento\Catalog\Model\Indexer\Category\Product
=> catalog_category_productดัชนี
Magento\Catalog\Model\Indexer\Product\Category
=> catalog_product_categoryดัชนี
โชคดีที่อันที่สองขยายอันแรกออกไปเพื่อให้คุณมีจุดเริ่มต้นหนึ่งจุด
คุณต้องจำไว้ว่าแต่ละคลาสตัวทำดัชนีนี้ใช้คลาสของแถวแอ็คชันเพื่อประมวลผลการทำดัชนีใหม่:
Magento\Catalog\Model\Indexer\Product\Category\Action\Rows
Magento\Catalog\Model\Indexer\Category\Product\Action\Rows
สำหรับฉันนั่นคือที่ที่คุณควรเริ่มทำการดีบั๊กเนื่องจากคลาสของแถวแอ็คชันเหล่านั้นเป็นคลาสโดยตรงที่มีการสร้างดัชนีใหม่สองดัชนีนั้น
ฉันหวังว่ามันจะช่วยคุณค้นหาปัญหาของคุณ