Package alternativo do repositório artesaos/cidadesbr
Tenha no banco de dados do seu projeto Laravel a tabela de cidades brasileiras
Adicione o package para Laravel 7
composer require urameshibr/brazilcities
Para a versão 5 do Laravel utilize a versão 1.1.0
composer require urameshibr/brazilcities:"1.1.0"
Adicione o Provider no arquivo config/app.php
// file START ommited
'providers' => [
// other providers ommited
Urameshibr\Providers\CityServiceProvider::class,
],
// file END ommited
Importe migrations/seeds
$ php artisan vendor:publish --provider="Urameshibr\Providers\CityServiceProvider"
Execute
$ composer dump-auto
$ php artisan migrate
$ php artisan db:seed --class="CitySeeder"
O model Urameshibr\City
já está disponível para uso:
<?php
namespace Urameshibr;
use Illuminate\Database\Eloquent\Model;
class City extends Model{
public $timestamps = false;
protected $fillable = ['name', 'uf'];
}
As rotas abaixo já estão disponíveis para uso:
Route::get('/ufs/', function($uf = null){
return response()->json(\Urameshibr\City::select('uf')->distinct('uf')->orderBy('uf')->get());
});
Route::get('/cities/{uf}', function($uf = null){
return response()->json(\Urameshibr\City::where('uf', $uf)->orderBy('name')->get());
});
Se desejar, um plugin está disponível para carregar seus selectBoxes via ajax.
Adicione o scripts.js
<script src="/vendor/urameshibr/cities/js/scripts.js"></script>
HTML:
<select id="uf" default="MG"></select>
<select id="city"></select>
JS:
$('#uf').ufs({
onChange: function(uf){
$('#city').cities({uf: uf});
}
});