PHP code example of leandrocfe / filament-ptbr-form-fields
1. Go to this page and download the library: Download leandrocfe/filament-ptbr-form-fields library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
leandrocfe / filament-ptbr-form-fields example snippets
use Leandrocfe\FilamentPtbrFormFields\Document;
//CPF or CNPJ
Document::make('cpf_or_cnpj')
->dynamic()
use Leandrocfe\FilamentPtbrFormFields\Money;
Money::make('price')
->default('100,00')
#output: 100.00
use Leandrocfe\FilamentPtbrFormFields\Money;
Money::make('price')
->default(10000)
->intFormat()
#output: 10000
use Leandrocfe\FilamentPtbrFormFields\Money;
Money::make('price')
->default('100,00')
->dehydrateMask()
#output: 100,00
Money::make('price')
->prefix(null)
use Leandrocfe\FilamentPtbrFormFields\Currencies\USD;
Money::make('price')
->currency(USD::class)
->prefix('$')
/*
* app/Currencies/EUR.php
*/
declare(strict_types=1);
namespace App\Currencies;
use ArchTech\Money\Currency;
class EUR extends Currency
{
/*
* Code of the currency.
*/
public string $code = 'EUR';
/*
* Name of the currency.
*/
public string $name = 'Euro';
/*
* Rate of this currency relative to the default currency.
*/
public float $rate = 1.0;
/*
* Number of decimals used in money calculations.
*/
public int $mathDecimals = 2;
/*
* Number of decimals used in the formatted value
*/
public int $displayDecimals = 2;
/*
* How many decimals of the currency's values should get rounded
*/
public int $rounding = 2;
/*
* Prefix placed at the beginning of the formatted value.
*/
public string $prefix = '€';
/*
* The language code.
*/
public string $locale = 'pt';
/*
* The character used to separate the decimal values.
*/
public string $decimalSeparator = '.';
/*
* The character used to separate groups of thousands
*/
public string $thousandsSeparator = ',';
}
use App\Currencies\EUR;
Money::make('price')
->currency(EUR::class)
->prefix('€')
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Components\Utilities\Set;
use Leandrocfe\FilamentPtbrFormFields\Cep;
use Leandrocfe\FilamentPtbrFormFields\CepFieldMode;
use Leandrocfe\FilamentPtbrFormFields\Providers\ViaCepProvider;
Cep::make('postal_code')
->mode(CepFieldMode::SUFFIX) // or CepFieldMode::ON_BLUR
->api(ViaCepProvider::class, function (Set $set, ?array $response) {
$set('street', data_get($response, 'logradouro'));
$set('neighborhood', data_get($response, 'bairro'));
$set('city', data_get($response, 'localidade'));
$set('state', data_get($response, 'uf'));
}),
TextInput::make('street'),
TextInput::make('neighborhood'),
TextInput::make('city'),
TextInput::make('state'),
use Leandrocfe\FilamentPtbrFormFields\Providers\BrasilApiProvider;
Cep::make('cep')
->api(BrasilApiProvider::class, function (Set $set, ?array $response) {
// ...
})
use Leandrocfe\FilamentPtbrFormFields\Providers\CepProviderInterface;
use Illuminate\Support\Collection;
class MyCustomProvider implements CepProviderInterface
{
public function fetch(string $cep): null|Collection|array
{
// Your implementation
return $response;
}
}