Ich versuche, alle Produktlisten in mein Modul in Magento2-Anwendung zu holen, aber nicht in der Lage, herauszufinden, wie.Ermitteln der Produktliste in einem Magento2-Modul
My Block Code:
class Crud extends \Magento\Framework\View\Element\Template
{
protected $objectManager;
public function __construct(Magento\Framework\View\Element\Template\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory,
\Magento\Framework\ObjectManagerInterface $objectManager,
\Magento\Framework\App\State $appState
)
{
$this->objectManager = $objectManager;
// $appState->setAreaCode('frontend');
parent::__construct($context);
}
function _prepareLayout(){}
function getCrudName(){
return "Products for holmes chat client";
}
function getProductList(){
// $objectMan= new \Magento\Framework\App\ObjectManager;
$objectMan= $this->$objectManager;
$repo = $objectMan->get('Magento\Catalog\Model\ProductRepository');
$search_criteria = $objectMan->create(
'Magento\Framework\Api\SearchCriteriaInterface'
);
$result = $repo->getList($search_criteria);
// $list = $repo->getList();
$products = $result->getItems();
return $products;
// return 'some';
}
function getProducts(){
$objectMan = new Holmes\ChatClient\Api\ProductFetcher;
}
}
My Template-Code:
<h2>This is a crud html</h2>
<h3>
<?php
echo $block->getCrudName();
?>
</h3>
<ul>
<?php
echo $block->getProductList();
?>
</ul>
Mein Browser einen Fehler wirft als:
3 exception(s):
Exception #0 (Magento\Framework\Exception\LocalizedException): Invalid block type: Holmes\ChatClient\Block\Crud
Exception #1 (ReflectionException): Class Holmes\ChatClient\Block\Magento\Framework\View\Element\Template\Context does not exist
Exception #2 (ReflectionException): Class Holmes\ChatClient\Block\Magento\Framework\View\Element\Template\Context does not exist
Ich bin neu in magento und der Blockcode funktioniert, wenn ich den Konstruktor entferne und die Methode getProductList()
aus dem Code entferne. Und kann ich Code in einen Magento Block schreiben?
Ich habe versucht, die Sichtbarkeiten zu ändern. Aber ich denke, das Problem ist nicht da. Der Block funktioniert für andere Methoden wie 'getCrudName()'. Die Ansicht wird ordnungsgemäß gerendert, wenn 'getProductList()' nicht aufgerufen wird. Ich denke, es gibt ein Problem mit der Logik oder Implementierung, um Produktliste zu holen – Roy
Ich fand einen weiteren Fehler: '$ objectMan = $ objectManager;' sollte '$ objectMan = $ this-> objectManager;' Löst das irgendwas? Beachten Sie auch, dass das zurückgegebene Objekt sehr groß ist, wenn die Funktion funktioniert. –
Nein, ich bekomme immer noch eine Ausnahme als '3 Ausnahme (n): Ausnahme # 0 (Magento \ Framework \ Exception \ LocalizedException): Ungültiger Blocktyp: Holmes \ ChatClient \ Block \ Crud Ausnahme # 1 (ReflectionException): Klasse Holmes \ ChatClient \ Block \ Magento \ Framework \ View \ Element \ Template \ Kontext existiert nicht Ausnahme # 2 (ReflectionException): Klasse Holmes \ ChatClient \ Block \ Magento \ Framework \ View \ Element \ Template \ Kontext existiert nicht ' – Roy