We just recently tested upgrading from M2.2.4 to M2.3.7 and have ironed out most of the issues, however when trying to load a page, we get the following error:
Fatal error: Uncaught Error: Object of class Magento\Framework\View\Page\Title could not be converted to string in /app/code/CleverSoft/Base/Model/Renderer.php:141 Stack trace: #0 /app/code/CleverSoft/Base/Model/Renderer.php(141): str_replace(Array, Array, '<meta name="%na...') #1 /app/code/CleverSoft/Base/Model/Renderer.php(112): CleverSoft\Base\Model\Renderer->renderMetadata() #2 /vendor/magento/framework/View/Result/Page.php(250): CleverSoft\Base\Model\Renderer->renderHeadContent() #3 /vendor/magento/framework/View/Result/Layout.php(171): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor)) #4 /vendor/magento/framework/Interception/Interceptor.php(58): Ma in /app/code/CleverSoft/Base/Model/Renderer.php on line 141
The function it is referring to within Renderer.php is:
public function renderMetadata()
{
$result = '';
foreach ($this->pageConfig->getMetadata() as $name => $content) {
$metadataTemplate = $this->getMetadataTemplate($name);
if (!$metadataTemplate) {
continue;
}
$content = $this->processMetadataContent($name, $content);
if ($content) {
$result .= str_replace(['%name', '%content'], [$name, $content], $metadataTemplate);
}
}
return $result;
}
With the mentioned line 141 being $result .= str_replace(['%name', '%content'], [$name, $content], $metadataTemplate);
Just playing with it and changing the code to:
public function renderMetadata()
{
$result = '';
return $result;
}
Allows the pages to load but, some elements end up broken like the navigation menus and whatnot. The above is not a solution, so anyone has any ideas. What did I do to allow for the object to be converted to a string?
Thanks!