Pergunta

É possível obter uma lista das colunas da tabela relacionadas a um modelo?

Foi útil?

Solução

É possível usar o describeTable() método.

Portanto, seu modelo de recursos, você pode criar uma função como a seguinte, isso retornará um array de campos para a tabela principal:

public function getFields()
{
    $fields = $this->_getWriteAdapter()->describeTable($this->getMainTable());
    return $fields;
}

Outras dicas

Para quem está lutando com isso no Magento 2:

No seu costume classe de modelo de recursos, adicione esta função:

public function getFields()
{
    $fields = $this->getConnection()->describeTable($this->getMainTable());
    return $fields;
}

E em algum lugar você precisa pegar todas as colunas de uma tabela (todos os campos do objeto):

$objectModel = $this->objectFactory->create(); // I prefer using dependency injection
$keys = array_keys($objectModel->getResource()->getFields());

P/S:Obrigado @Fra pela ótima pergunta de auto-resposta.Isso economizou muito do meu tempo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top