diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 67b72fd8..a20224a3 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -18,6 +18,7 @@ Route::prefix('admin') Route::Resource('files', \Beike\Admin\Http\Controllers\FileController::class); Route::Resource('customers', \Beike\Admin\Http\Controllers\CustomerController::class); + Route::resource('customers.addresses', \Beike\Admin\Http\Controllers\AddressController::class); Route::put('products/restore', [\Beike\Admin\Http\Controllers\ProductController::class, 'restore']); Route::resource('products', \Beike\Admin\Http\Controllers\ProductController::class); diff --git a/beike/Models/Address.php b/beike/Models/Address.php index 7b136352..06bf3039 100644 --- a/beike/Models/Address.php +++ b/beike/Models/Address.php @@ -17,5 +17,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; class Address extends Model { use HasFactory; + + protected $fillable = ['customer_id', 'name', 'phone', 'country_id', 'state_id', 'state', 'city_id', 'city', 'zipcode', 'address_1', 'address_2']; } diff --git a/beike/Models/Customer.php b/beike/Models/Customer.php index ecdc718a..53f7d1a6 100644 --- a/beike/Models/Customer.php +++ b/beike/Models/Customer.php @@ -3,6 +3,7 @@ namespace Beike\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; @@ -14,4 +15,9 @@ class Customer extends Authenticatable const AUTH_GUARD = 'web_shop'; protected $fillable = ['name', 'email', 'password', 'status', 'avatar', 'customer_group_id', 'language_id', 'status', 'from']; + + public function addresses(): HasMany + { + return $this->hasMany(Address::class); + } } diff --git a/beike/Repositories/AddressRepo.php b/beike/Repositories/AddressRepo.php index 1a196247..fe08c145 100644 --- a/beike/Repositories/AddressRepo.php +++ b/beike/Repositories/AddressRepo.php @@ -11,7 +11,45 @@ namespace Beike\Repositories; +use Beike\Models\Address; + class AddressRepo { + /** + * 创建一个address记录 + * @param $data + * @return int + */ + public static function create($data) + { + return Address::query()->insertGetId($data); + } + /** + * @param $id + * @param $data + * @return bool|int + */ + public static function update($id, $data) + { + return Address::query()->find($id)->update($data); + } + + /** + * @param $id + * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Model|null + */ + public static function find($id) + { + return Address::query()->find($id); + } + + /** + * @param $id + * @return void + */ + public static function delete($id) + { + Address::query()->find($id)->delete(); + } } diff --git a/resources/beike/admin/views/pages/addresses/index.blade.php b/resources/beike/admin/views/pages/addresses/index.blade.php new file mode 100644 index 00000000..779d3421 --- /dev/null +++ b/resources/beike/admin/views/pages/addresses/index.blade.php @@ -0,0 +1,58 @@ +@extends('admin::layouts.master') + +@section('title', '顾客管理') + +@push('header') + +@endpush + +@section('content') +