Cómo obtener mis datos de tabla personalizados de magento 2


8

He creado una nueva tabla usando un módulo personalizado y un valor almacenado para esta tabla, ahora, necesito obtener datos de la tabla en el archivo php de la base de datos en magento 2, ¿cómo lograr esto?

TableName="email_format" columns="customerid"y "format"ahora, necesito recuperar la identificación del cliente y el valor del formato de la tabla.

Gracias,

Respuestas:


15

1) Supongo que ha creado el archivo Modelo y Colección asociado con esas tablas.

2) En un constructor de archivos PHP de bloques, agregue un argumento (Inyección de dependencias) como se muestra a continuación y guárdelo en una variable miembro de la clase.

 public function __construct(
    Context $context,
    \Namespace\Modulename\Model\ModelNameFactory $modelNameFactory,

    array $data = array()
) {
    $this->_modelFactory = $modelFactory;
    parent::__construct($context, $data);
}

3) Prepare un método público en su bloque para acceder a la colección como se muestra a continuación.

public function getCollection(){

    return $this->_modelFactory->create()->getCollection();

}

4) Recorre cada uno de los resultados de la colección.

Espero que esto te ayudará.


¿Podemos inyectar \ Namespace \ Modulename \ Model \ ResourceModel \ ModelName \ Collection directamente en el constructor?
Mehdi

10

Puede obtener una tabla personalizada directamente utilizando el concepto objectmanager,

    $objectManager =   \Magento\Framework\App\ObjectManager::getInstance();
    $connection = $objectManager->get('Magento\Framework\App\ResourceConnection')->getConnection('\Magento\Framework\App\ResourceConnection::DEFAULT_CONNECTION'); 
    $result1 = $connection->fetchAll("SELECT * FROM email_format");

echo "<pre>";print_r($result1);

O

Esta es la forma correcta de usar el bloque:

public function __construct(
    Context $context,
    \Namespace\Module\Model\ModuleFactory $modelFactory,

    array $data = array()
) {
    $this->_modelFactory = $modelFactory;
    parent::__construct($context, $data);
}

Puede obtener la colección por métodos de fábrica:

public function getCollection(){

    return $this->_modelFactory->create()->getCollection();

}

66
Esta no es la forma correcta
Codrain Technolabs Pvt Ltd

11
Usar el administrador de objetos directamente definitivamente no es la forma más elegante de hacerlo. Intente apegarse a la inyección de dependencia
Raphael en Digital Pianism
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.