mstfblci/laravel-addresses

存储地址的模块。

1.0.0 2022-10-17 19:25 UTC

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 编写。