Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Não consigo gravar mais de um item no mestre detalhe no detalhe public function onSave($param) { try { // open a transaction with database TTransaction::open('erphouse'); $data = $this->form->getData(); $this->form->validate(); $master = new Agente; $master->fromArray( (array) $data); $master->store(); ...
Não consigo gravar mais de um item no mestre detalhe no detalhe  
public function onSave($param)
{
try
{
// open a transaction with database
TTransaction::open('erphouse');

$data = $this->form->getData();
$this->form->validate();

$master = new Agente;
$master->fromArray( (array) $data);
$master->store();

AgenteItem::where('id', '=', $master->id)->delete();

if( $param['AgenteItem_list_cidade_id'] )
{
foreach( $param['AgenteItem_list_cidade_id'] as $key => $item_id )
{
$detail = new AgenteItem;
$detail->cidade_id = $param['AgenteItem_list_cidade_id'][$key];
$detail->id = $master->id;
$detail->store();
}
}
TTransaction::close(); // close the transaction

TForm::sendData('form_Agente', (object) ['id' => $master->id]);

new TMessage('info', AdiantiCoreTranslator::translate('Record saved'));
}
catch (Exception $e) // in case of exception
{
new TMessage('error', $e->getMessage());
$this->form->setData( $this->form->getData() ); // keep form data
TTransaction::rollback();

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


NR

Você está definindo o mesmo id para todos os detalhes, assim um acaba sobrescrevendo o outro
  1. <?php
  2. $detail->id $master->id;
  3. //imagino que o campo correto seja agente_id:
  4. $detail->agente_id $master->id;
  5. ?>

Mesma coisa no delete da AgenteItem, deve ser agente_id = master->id.

era isto mesmo.

problema agora não esta gravando id na tabela detalhe