Registros ativos de PHP em combinação com uma tabela com nomes de colunas semelhantes a array

StackOverflow https://stackoverflow.com/questions/9385150

  •  28-10-2019
  •  | 
  •  

Pergunta

Estou trabalhando com PHP Activerecords.Estou tentando fazer funcionar com uma tabela que tem nomes de colunas que se assemelham a uma matriz:

tablename {
  id: int,
  column[1]: text,
  column[2]: text,
  ...
  column[10]: text
}

Escolhi nomes de colunas semelhantes a matrizes, pois os dados contidos nesta tabela podem variar.

Agora, quando eu quiser usar os dados da coluna, usaria a seguinte declaração

$tabelname->id

isso funciona e retornará o id;Quando eu uso o seguinte código:

$tabelname->column[1]

Recebo o seguinte erro: Erro fatal de PHP: exceção não detectada 'ActiveRecord \ UndefinedPropertyException' com a mensagem 'Propriedade indefinida: Tablename-> coluna

Para fins de exibição, posso solucionar esse problema usando o seguinte código:

$tempdata = array();
foreach(tablename->attributes() as $key ->$value)
{
  $tempdata[$key] = $value
}

Mas assim não consigo atualizar os dados da tabela.Alguém tem uma solução para acessar os dados tanto para leitura quanto para escrita?

Mysql: Serverversie: 5.1.41-3ubuntu12.8

PHP: PHP versão 5.3.2-1ubuntu4.14

Foi útil?

Solução

O que eu não esperava que funcionasse:

Mudei os nomes das colunas da coluna [1] para a coluna_1.Então, em meu código, acessei-os através do seguinte método:

$key = 1; // this is coming from a parameter
$columnname = 'column_' . $key;
$table->$columname = "new value"; // I didn't expect a variable to work as an attribute name
$table->save();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top