Casts
- Phone Rules
Rules
- Bsn
- Requestnr
Facades
- Distance
Traits
- AddressModelTrait
- NameModelTrait
composer require mmerlijn/laravel-helpers
add to app.js
import flashHandler from '../../vendor/mmerlijn/laravel-helpers/resources/js/flashHandler';
Alpine.data('flashHandler', flashHandler)
window.flash = msg => window.dispatchEvent(new CustomEvent('flash', {detail: msg}))
add to the preferred layout.blade (bottom of body)
<x-mm-flash/>
Flash::message('Hello World')->type('noticee')->add();
or
<button x-data="{}" @click="$dispatch('flash',{text:'Hi'})">Click me</button>
or
flash('Hi, all!')
Setter will cast phone to only numbers string
Getter will cast phone to a readable format
Important!!
fill city field before phone fields for the use of kental
//In YourModel.php
protected $casts = [
'phone' => Phone::class,
];
//setter => 0612345678
//getter => PhoneModel class
//methods
$model->phone->get(); // returns 06 1234 5678
$model->phone->set(); // returns 0612345678
$model->phone->smsPhone(); //returns +31612345678 or exception
$model->phone->withCountryCode('it'); //returns +39612345678
Setter will strip all none alphabetic characters
Getter will split all letters with a dot
//In YourModel.php
protected $casts = [
'initials' => Initials::class,
];
//setter => BAR
//getter => B.A.R.
Validates Dutch BSN
Validator::make([],[
'bsn'=> [new Bsn]
]);
validate requestnr
regex: '/^((ZD|ZP|CW){1}\d{8}|(PG){1}\d{9})$/i'
Validator::make([],[
'request_nr'=> [new Requestnr]
]);
Calculate distance between to coordinates
//with coordinates
Distance::from(52.4968, 5.0727)
->to(52.5144, 4.9641)
->get();
//with cities
Distance::from("Volendam")
->to("Purmerend")
->get();
The get method accepts three params: unit, format,precision
Adds a flash message to the session flash
//with coordinates
Flash::message('Hello World')
->type('success')
->duration(3000)
->add();
The get method accepts three params: unit, format,precision
->get(unit:"m"); //distance in meter (default km)
->get(format:true) // 5,4 km
city, street, building, postcode
Add to your model
use AddressModelTrait;
This will trigger an attribute setter and getter.
$model->address->street;
initials, lastname, prefix, own_lastname, own_prefix, sex
Add to your model
use NameModelTrait;
This will trigger an attribute setter and getter.
$model->name->salutation; // Dhr. / Mevr.
$model->name->name; //Full name