Tabs com action update / create

Bom dia.

Tenho de criar vários formulários dentro de tabs, tendo optado pelo CJuiTabs. Até eu consigo sem problema.

O meu problema está que em dois desses forms, um é para fazer update ao model Objectivos e o outro é para criar registos no mesmo model Objectivos recorrendo ao DynamicTabular Input.

Ao criar o formulário para o dynamicTabular Input tenho de criar um array do model objectivos, o que quando faço guardar gera um erro e não grava.

Os meus tabs:

<?php

$form=$this->beginWidget(‘DynamicTabularForm’,array(

   'id'=&gt;'default-parent-form',


   'enableAjaxValidation'=&gt;false,

));

?>

<?php

$tabs[‘Dados Pessoais’]=array(

   'id'=&gt;'dataFielsTab',


   'content'=&gt;&#036;this-&gt;renderPartial('_formPag1',array(


       'form'=&gt;&#036;form,


       'model1'=&gt;&#036;model1,


       'model2'=&gt;&#036;model2,


       'colaborador'=&gt;&#036;colaborador,


   ),


           true)

);

$tabs[‘Competências’]=array(

   'id'=&gt;'dataFielsCompet',


   'content'=&gt;&#036;this-&gt;renderPartial('_formPag2',array(


       'form'=&gt;&#036;form,


       'items'=&gt;&#036;itemsCompet,


       'modelCompet'=&gt;&#036;modelCompet,


       'compet'=&gt;&#036;compet,


   ),


           true)

);

$tabs[‘Objectivos Ano Anterior’]=array(

   'id'=&gt;'dataFielsObj',


   'content'=&gt;&#036;this-&gt;renderPartial('_formPag3',array(


       'form'=&gt;&#036;form,


       'items'=&gt;&#036;items,


       'model'=&gt;&#036;model,


   ),


           true)

);

$tabs[‘Novos Objectivos’]=array(

   'id'=&gt;'definirObj',


   'content'=&gt;&#036;this-&gt;renderPartial('_formPag4',array(


   'form'=&gt;&#036;form,


   'obj'=&gt;&#036;obj,


 


    


   ),


           true)

);

&#036;tabs['Acção de Formação']=array(


   'id'=&gt;'formacao',


   'content'=&gt;&#036;this-&gt;renderPartial('_formPag5',array(


       'form'=&gt;&#036;form,


       'forma'=&gt;&#036;forma,


    


   ),


           true)

);

&#036;tabs['Resultado']=array(


   'id'=&gt;'resultado',


   'content'=&gt;&#036;this-&gt;renderPartial('_formPag6',array(


       'form'=&gt;&#036;form,


    


   ),


           true)

);

 &#036;tabs['Comentários']=array(


   'id'=&gt;'comentarios',


   'content'=&gt;&#036;this-&gt;renderPartial('_formPag7',array(


       'form'=&gt;&#036;form,


       'momento'=&gt;&#036;momento,


    


   ),


           true)

);

 &#036;this-&gt;widget('zii.widgets.jui.CJuiTabs',array(


    'tabs'=&gt;&#036;tabs,


     'options'=&gt;array(


         'collapsible'=&gt;false,


     ),


 ));

?>

&lt;br&gt;


&lt;div style=&quot;margin-left: 930px&quot;&gt;


      &lt;?php

$this->widget(‘zii.widgets.jui.CJuiButton’,array(

'name'=&gt;'submit',





'caption'=&gt;'Enviar',





'htmlOptions'=&gt;array(





    'style'=&gt;'background:#006600;color:#ffffff;',





),

));

    ?&gt;

No meu controller tenho o $model= new Objectivos(‘areaColaborador’);

e $obj= array(new Objectivos());

Como é que posso contornar esta situação?

O update é realizado pelo tabular input que tem na documentação do Yii.

Obrigada.

Bom dia Marisa,

A sua aplicação gera um application.log dentro da pasta ‘protected/runtime’, você consegue verificar se é gerado algum erro na execução?

Att,

Verifiquei esse ficheiro, mas não tem nenhum erro. O que me aparece se tentar guardar com todas as tabs criadas é o seguinte erro:

array_key_exists() expects parameter 2 to be array, string given

Sei que o problema está em criar duas vezes a instância do modulo Objectivos. Mas não sei como resolver.

Obrigada.

Em seu controller você está direcionando os dados do seu $_POST para as instâncias criadas?


$obj = new Objectivos();

$obj[0]->attributes = $_POST['attributes'];

Att,

Si, no meu controller faço dessa forma. Só que como o formusa a extensão DynamicTabularInput, uso o exemplo que está no forum

http://www.yiiframework.com/extension/dynamictabularform/

Se for necessário anexo o ficheiro para poder analisar o código.

Obrigada.

Ninguém me consegue ajudar?

Obrigada.

Boa tarde.

Será que alguém me consegue ajudar quando tenho dois tabs com o mesmo modelo, em que um faz um update e o outro faz um create. Este create tem de ser um formulário dinâmico de modo a o utilizar introduzir as linhas que pretenda.

Obrigada.

Boa noite Marisa,

Se puder, anexe o código fonte para que possamos analisar melhor.

Boa tarde.

Acabei resolvendo de outra forma, passei a usar Jquery para preencher o form como uma popup.

Obrigada pela ajuda.