Невозможно отобразить значения таблиц базы данных на интерфейсе в magento 2.1.7
Я пытаюсь получить таблицу на интерфейсе, но получаю эту ошибку
Неустранимая ошибка: класс 'Crud\Crudatfrontend\Model\Resourcemodel\Post' не найден в D:\xampp\htdocs\newmag\vendor\magento\framework\ObjectManager\Factory\AbstractFactory.php в строке 93
app/code/Crud/Crudatfrontend/ ├── Block │ └── index.php ├── etc │ └── module.xml ├── Model │ ├── Post.php │ ├── ResourceModel │ │ ├── Post │ │ │ └── Collection.php │ │ └── Post.php ├── registration.php ├── Setup │ └── InstallSchema.php └── view └── frontend ├── layout │ └── crud_index_index.xml ├── templates └── index.phtml
Вот мой код,
Block/Index.php
<?php
namespace Crud\Crudatfrontend\Block;
use Magento\Framework\App\Filesystem\DirectoryList;
class Index extends \Magento\Framework\View\Element\Template
{
protected $_filesystem;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Crud\Crudatfrontend\Model\PostFactory $postFactory
)
{
parent::__construct($context);
$this->_postFactory = $postFactory;
}
public function getResult()
{
$post = $this->_postFactory->create();
$collection = $post->getCollection();
return $collection;
}
}
Model/Post.php
<?php
namespace Crud\Crudatfrontend\Model;
class Post extends \Magento\Framework\Model\AbstractModel implements \Magento\Framework\DataObject\IdentityInterface
{
protected function _construct()
{
$this->_init('Crud\Crudatfrontend\Model\ResourceModel\Post');
}
public function getIdentities()
{
return [self::CACHE_TAG . '_' . $this->getId()];
}
public function getDefaultValues()
{
$values = [];
return $values;
}
}
Model\ResourceModel\Post.php
<?php
namespace Crud\Crudatfrontend\Model\ResourceModel;
use \Magento\Framework\Model\ResourceModel\Db\AbstractDb;
class HelloWorld extends AbstractDb
{
/**
* Model initialization
*/
protected function _construct()
{
$this->_init('Crud_Crudatfrontend', 'post_id');
}
}
Model\ResourceModel\Post\collection.php
<?php
namespace Crud\Crudatfrontend\Model\ResourceModel\Post;
class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
/**
* Define resource model
*
* @return void
*/
protected function _construct()
{
$this->_init('Crud\Crudatfrontend\Model\Post', 'Crud\Crudatfrontend\Model\ResourceModel\Post');
}
}
1
Author: Bhakti Thakkar, 2019-04-09
1 answers
Неверное имя класса ресурсов
Класс HelloWorld расширяет базу данных AbstractDb
Это должно быть
Класс Post расширяет базу данных AbstractDb
Измените его на Model\ResourceModel\Post.php
2
Author: Amit Bera, 2019-04-09 10:18:56