Newerton,
Estamos aqui denovo…
Bom, fiz o que você me falou e consegui montar a tela de cadastro e como sempre lá vem as dúvidas.
1º No <labelEx> vai o nome do campo a ser preenchido, como padrão o YII pega o que tá no banco de dados,
porém no meu caso, não pode ser o que está no banco, por causa dos prefixos que uso como referência do tipo de atributo.
Personalizei o nome do campo, e ele deixou de fazer a validação do mesmo. Como resolver esse problema?
2º Como faço pra esse cadastro funcionar? Porque clico em ‘Create’ (cadastrar) e não acontece nada…
3º O campo ‘Data Cadastro’ é a data atual do servidor tem como eu deixar esse campo como hidden e colocar as horas como value nele?
Abaixo segue os códigos criados:
:: CadastroController.php
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
public function actionCreate()
{
$model = new Cadastro();
$empresa = new Empresa();
$endereco = new Endereco();
$home = new Home();
// Descomente a seguinte linha se a validação AJAX é necessário
//$this->performAjaxValidation($model);
if(isset($_POST['Cadastro']) && isset($_POST['Empresa']) && isset($_POST['Endereco']) && isset($_POST['Home']))
{
$model->attributes = $_POST['Cadastro'];
$empresa->attributes = $_POST['Empresa'];
$endereco->attributes = $_POST['Endereco'];
$home->attributes = $_POST['Home'];
/*
* Validando os 4 models
*/
if($model->validate() && $empresa->validate() && $endereco->validate() && $home->validate()){
if($model->save() && $empresa->save() && $endereco->save() && $home->save()){
$this->redirect(array('view','id'=>$model->idcadastro));
}
}
}
$this->render('create',array(
'model' => $model,
'empresa' => $empresa,
'endereco' => $endereco,
'home' => $home
));
}
::create.php
<?php
$this->breadcrumbs=array(
'Cadastros'=>array('index'),
'Create',
);
$this->menu=array(
array('label'=>'List Cadastro', 'url'=>array('index')),
array('label'=>'Manage Cadastro', 'url'=>array('admin')),
);
?>
<h1>Criando cadastro</h1>
<?php
echo $this->renderPartial('_form', array('model'=>$model, 'empresa'=>$empresa, 'endereco'=>$endereco, 'home'=>$home));
?>
:: _form.php
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'cadastro-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Campos com <span class="required">*</span> são obrigatórios.</p>
<?= $form->errorSummary($model); ?>
<!-- Dados da tabela empresa -->
<div class="row">
<?= $form->labelEx($empresa, 'Nome fantasia');?>
<?= $form->textField($empresa, 'nme_fantasia', array('size'=>45,'maxlength'=>45));?>
<?= $form->error($empresa, 'nme_fantasia');?>
</div>
<div class="row">
<?= $form->labelEx($empresa, 'Razão social');?>
<?= $form->textField($empresa, 'nme_razao_social', array('size'=>45,'maxlength'=>45));?>
<?= $form->error($empresa, 'nme_razao_social');?>
</div>
<div class="row">
<?= $form->labelEx($empresa, 'CNPJ');?>
<?= $form->textField($empresa, 'doc_cnpj', array('size'=>15,'maxlength'=>15));?>
<?= $form->error($empresa, 'doc_cnpj');?>
</div>
<div class="row">
<?= $form->labelEx($empresa, 'Inscrição estadual');?>
<?= $form->textField($empresa, 'doc_insc_estadual', array('size'=>15,'maxlength'=>15));?>
<?= $form->error($empresa, 'doc_insc_estadual');?>
</div>
<div class="row">
<?= $form->labelEx($empresa, 'Data fundação');?>
<?= $form->textField($empresa, 'dat_data_fundacao', array('size'=>10,'maxlength'=>10));?>
<?= $form->error($empresa, 'dat_data_fundacao');?>
</div>
<!-- Dados da tabela endereco -->
<div class="row">
<?= $form->labelEx($endereco, 'Logradouro'); ?>
<?= $form->textField($endereco, 'nme_logradouro', array('size'=>45,'maxlength'=>45)); ?>
<?= $form->error($endereco, 'nme_logradouro'); ?>
</div>
<div class="row">
<?= $form->labelEx($endereco, 'Número'); ?>
<?= $form->textField($endereco, 'num_numero', array('size'=>5,'maxlength'=>5)); ?>
<?= $form->error($endereco, 'num_numero'); ?>
</div>
<div class="row">
<?= $form->labelEx($endereco, 'Complemento'); ?>
<?= $form->textField($endereco, 'nme_complemento', array('size'=>45,'maxlength'=>45)); ?>
<?= $form->error($endereco, 'nme_complemento'); ?>
</div>
<div class="row">
<?= $form->labelEx($endereco, 'Bairro'); ?>
<?= $form->textField($endereco, 'nme_bairro', array('size'=>45,'maxlength'=>45)); ?>
<?= $form->error($endereco, 'nme_cidade'); ?>
</div>
<div class="row">
<?= $form->labelEx($endereco, 'Estado'); ?>
<?= $form->textField($endereco, 'sgl_uf', array('size'=>2,'maxlength'=>2, 'value'=>'MG')); ?>
<?= $form->error($endereco, 'sgl_uf'); ?>
</div>
<div class="row">
<?= $form->labelEx($endereco, 'CEP'); ?>
<?= $form->textField($endereco, 'nme_cep', array('size'=>15,'maxlength'=>15)); ?>
<?= $form->error($endereco, 'nme_cep'); ?>
</div>
<!-- Dados da tabela cadastro -->
<div class="row">
<?= $form->labelEx($model, 'Data cadastro'); ?>
<?= $form->textField($model, 'dat_data', array('size'=>10,'maxlength'=>10)); ?>
<?= $form->error($model, 'dat_data'); ?>
</div>
<!-- Dados da tabela Home page -->
<div class="row">
<?= $form->labelEx($home, 'Site'); ?>
<?= $form->textField($home, 'nme_site', array('size'=>45,'maxlength'=>45)); ?>
<?= $form->error($home, 'nme_site'); ?>
</div>
<div class="row buttons">
<?= CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->