Because of the high reliance of XML files, I am having a very hard time figuring out the cause of this error when creating a custom admin grid:
Fatal error: Method
Magento\Ui\TemplateEngine\Xhtml\Result::__toString() must not throw an
exception in
C:\wamp64\www\mage2\vendor\magento\module-ui\Component\Wrapper\UiComponent.php
on line 0
I am trying to make an admin grid for the sales_shipment_item
table.
So far I have:
-
Used xdebug and put it within the
__toString()
method of the Result class, it does not show what the real error is -
I have
var_dump
-ed the variables within the__toString()
method -
I have developer mode turned on in Magento 2
-
I have checked the
var/logs
and it shows nothing helpful
I have successfully made other admin custom grids, but trying to figure out the actual error is like a needle in a haystack. Has anyone found a better way of debugging these? I have looked over all the grid xml, di.xml
, and models and all looks ok.
Best Answer
The error you're getting is indeed triggered in
vendor\magento\module-ui\Component\Wrapper\UiComponent.php
.However, it is not triggered at line 0 but when the result is being converted to a string in the following method in the return statement:
Here's what you can try to debug your problem:
$result
contains before the string conversion and return statement is called$component->getName()
,$component->getComponentName()
and$component->getData()
to help you finding out what the problem is