CN
Gravar usando TDBMultiSearch
Olá!
Amigos, não consigo salvar o itens selecionados no campo abaixo.
É a primeira vez que uso o componente TDBMultiSearch.
$relacao_itens = new TDBMultiSearch('relacao_itens', 'cnn', 'Tbitens', 'id', 'nome');
Desde já, obrigado!
Amigos, não consigo salvar o itens selecionados no campo abaixo.
É a primeira vez que uso o componente TDBMultiSearch.
$relacao_itens = new TDBMultiSearch('relacao_itens', 'cnn', 'Tbitens', 'id', 'nome');
Desde já, obrigado!
Este componente retorna um array.
Onde vc pretende gravá-lo?
Num único campo ou em uma tabela?
Único campo.
Sugiro utilizar
Por exemplo
Ou melhor ainda, usar implode();
$campo = implode("", $data->relacao_itens);
Boa tarde Marcelo!
Está gravando no campo dentro da base de dados!
Abaixo do formulário tem um datagrid. Ao clicar em um dos registros, aparece o erro:
Warning: Invalid argument supplied for foreach() in C:wamp64wwwrmslibadiantiwidgetwrapperTDBMultiSearch.php on line 161
Pergunta: Para EDITAR, é preciso tratar novamente o conteúdo desse componente?
Sim, você precisar transformar o campo em array.
Use agora o explode();
Bom dia Marcelo!
Desculpe pela minha ignorância! Não sei como e onde modificar o código, por isso, segue o mesmo segue abaixo.
Antecipadamente, obrigado!
public function onEdit( $param )
{
try
{
if (isset($param['key']))
{
$key = $param['key']; // get the parameter $key
TTransaction::open('cnn'); // open a transaction
$object = new Tbatendimentos($key); // instantiates the Active Record
$this->form->setData($object); // fill the form
TTransaction::close(); // close the transaction
}
else
{
$this->form->clear(TRUE);
}
}
catch (Exception $e) // in case of exception
{
new TMessage('error', $e->getMessage()); // shows the exception error message
TTransaction::rollback(); // undo all pending operations
}
}
Vamos lá:
Primeiro o objeto que será retornado ao forma, os nomes dos campos devem ser os mesmos.
Partindo do pressuposto que o campo se chama "relacao_items", seri assim