Busca por um determinado endereço usando o CEP. A busca é realizada diretamente no website dos correios
Links ¶
Instação e configuração ¶
Copie a extensão para o diretório de extensões de sua aplicação: extensions/correios
Adicione no arquivo de configuração de sua aplicação o seguinte código.
<?php
array(
...
'components'=>array(
'buscaPorCep'=>array(
'class'=>'ext.correios.BuscaPorCepApp'
),
...
);
?>
Adicione no seu controller:
<?php
public function actions()
{
return array(
'buscaPorCep'=>'ext.correios.actions.BuscaPorCepAction'
);
}
?>
Como usar ¶
Adione na view:
<?php echo CHtml::button("Buscar endereço", array("id"=>"btnBuscarCep")); ?>
<?php $this->widget('ext.correios.BuscaPorCep', array(
'target'=>'#btnBuscarCep',
'model'=>$modelEndereco,
'attribute'=>'cep',
'url'=>'/seu_controller/buscaPorCep',
'config'=>array(
'location'=>'logradouro',
'district'=>'bairro',
'city'=>'cidade',
'state'=>'estado',
),
)); ?>
Very Good!
Excellent contribution my friend!
Parabéns
Ótima contribuição!
Liked
That's a very nice idea, Wanderson. Thanks!
Parabéns!!
Excelente trabalho.. funciona 100% .. .
uma pequena observação: poderia colocar um Loanding... Ou um Mensagem apos concluído a pesquisa.
Abração.
Fix URL 404
Usei essa extensão por dois anos, infelizmente a URL fonte foi removida.
Então fiz essa correção no BuscaPorCepApp.php
public function run($postalCode) { $postalCode = str_replace('-', '', $postalCode); if( empty($postalCode) || strlen($postalCode) != 8 ){ $out = $this->fieldsMap; $out['result_text'] = Yii::t('BuscaPorCepApp.correios', 'Invalid postcode.'); $out['result'] = 0; return $out; }else{ $out = $this->parseWS($postalCode); } return $out; } /** * Realiza parse do WS dos Correios. * @param string $cep */ protected function parseWS($postalCode) { $soap = new SoapClient('https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl'); $soapArgs = array( 'cep' => $postalCode ); $result = $soap->consultaCEP($soapArgs); $out['location'] = $result->return->end; $out['district'] = $result->return->bairro; $out['city'] = $result->return->cidade; $out['state'] = $result->return->uf; $out['result'] = 1; $out['result_text'] = Yii::t('BuscaPorCepApp.correios', 'Address found.'); return $out; }
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.