mstfblci / laravel-addresses
存储地址的模块。
1.0.0
2022-10-17 19:25 UTC
Requires
- php: >=7.2.5
- illuminate/auth: ^6.0|^7.0|^8.0
- illuminate/container: ^6.0|^7.0|^8.0
- illuminate/contracts: ^6.0|^7.0|^8.0
- illuminate/database: ^6.0|^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-25 22:33:46 UTC
README
为 Laravel 中的 Eloquent 模型管理土耳其地址的简单方法。受以下包的启发
安装
通过运行以下命令安装此包
composer require madonetr/laravel-addresses
发布配置和迁移
php artisan vendor:publish --provider="Madonetr\Addresses\AddressesServiceProvider"
此命令将发布一个 config/addresses.php
文件和一个迁移文件。
您可以通过更改这两个文件来修改默认字段及其规则。
发布后,您可以运行迁移
php artisan migrate
用法
您可以在任何模型上使用 HasAddresses
特性。
<?php namespace App\Models; use Madonetr\Addresses\Traits\HasAddresses; use Illuminate\Database\Eloquent\Model; class Post extends Model { use HasAddresses; // ... }
执行此操作后,您可以使用以下方法。
向模型添加地址
$post = Post::first(); $post->addAddress([ 'label' => 'My address', // required 'type' => 'Individual', // defaults to: null 'name' => 'Mustafa Balci', // defaults to: null 'company' => 'Madonetr', // defaults to: null 'vat_id' => '12314123', // defaults to: null - integer 'vat_office' => 'Yalova Vergi Dairesi', // defaults to: null 'address' => 'Main Street', // defaults to: null 'postal_code' => '10001', // defaults to: null 'city' => 'Yalova', // defaults to: null 'state' => 'New Madonetr State', // defaults to: null 'country' => 'Turkey', // defaults to: null 'is_primary' => true, // defaults to: false 'is_billing' => false, // defaults to: false 'is_shipping' => false, // defaults to: false ]);
更新现有地址
$post = Post::first(); $address = $post->getPrimaryAddress(); $post->updateAddress($address, ['label' => 'My new address']);
从模型中删除地址
$post = Post::first(); $address = $post->addresses()->first(); if ($post->deleteAddress($address)) { //do something }
确定模型是否有任何地址
$post = Post::first(); if ($post->hasAddresses()) { //do something }
确定模型是否有(一个或多个)给定地址。
use Madonetr\Addresses\Models\Address; $post = Post::find(); $address = Address::first(); if ($post->hasAddress($address)) { //do something } //OR if ($post->hasAddress($address->id)) { //do something } //OR $addresses = Address::where('city', 'Yalova')->get(); if ($post->hasAddress($addresses)) { //do something } //OR $addresses = Address::where('state', 'New Madonetr State')->pluck('id')->toArray(); if ($post->hasAddress($addresses)) { //do something }
当 一个 给定的地址属于模型时,将返回 true。
获取器
您可以使用以下方法检索地址和某些属性。
获取模型的默认地址。
$post = Post::first(); $primaryAddress = $post->getPrimaryAddress();
获取模型的账单地址。
$post = Post::first(); $billingAddress = $post->getBillingAddress();
获取模型的配送地址。
$post = Post::first(); $shippingAddress = $post->getShippingAddress();
获取模型所有地址的标签。
$post = Post::first(); $labels = $post->getAddressLabels();
许可证
在 MIT 许可证 下授权。
作者
由土耳其的 Mustafa Balci 编写。