Laravel Phones is a package that provides a simple way to manage phones numbers related to models in your Laravel application.
You can install the package via composer:
composer require hichxm/laravel-phones
You can publish the config file with:
php artisan vendor:publish --provider="Hichxm\LaravelPhones\LaravelPhonesServiceProvider" --tag="config"
You need to publish and run the migrations with:
php artisan vendor:publish --provider="Hichxm\LaravelPhones\LaravelPhonesServiceProvider" --tag="migrations"
After the migration has been published you can create the phones table by running the migrations:
php artisan migrate
First, add the HasPhones
trait to the model you want to associate phones.
use Hichxm\LaravelPhones\Traits\HasPhones;
class User extends Model
{
use HasPhones;
}
Then, you can use the phones
relationship to manage the phones numbers.
$user = User::find(1);
$user->phones()->create([
'number' => '1234567890',
'type' => 'mobile',
]);
$user->addPhone('+33987654321');
$user->addPhone('0987654321', ['FR']); // with country code, will be stored as +33987654321
$user->addPhone('+33612345678', [], 'mobile'); // with type
You can also use the phones
relationship to retrieve the phones numbers.
$user = User::find(1);
$phones = $user->phones;
$mobilePhones = $user->phones()->where('type', 'mobile')->get();
// Use scopes
$phones = $user->getPhones();
$mobilePhones = $user->getPhones('mobile'); // specify the type
$firstPhone = $user->getFirstPhone(); // get the first phone
List of methods available when using the
HasPhones
trait.
Get the phones relationship ordered.
Get the phones relationship without any order.
Add a phone number to the model.
Get the phones numbers related to the model.
Get the first phone number related to the model.
./vendor/bin/phpunit
The MIT License (MIT). Please see License File for more information.