cuốn sách gpt4 ai đã làm

Mối quan hệ hiệu quả của Laravel - Hai địa chỉ giao hàng khác nhau được liên kết với một mô hình đơn hàng

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-10-31 23:14:28 hai mươi bốn 4
mua khóa gpt4 Nike

Tôi có hai địa chỉ giao hàng khác nhau cho mỗi đơn hàng:

  • địa chỉ hóa đơn
  • Địa chỉ giao hàng

Tất cả họ đều có trường giống nhau nên tôi chỉ tạo một trường cho họ Địa chỉ Người mẫu.

Người mẫu:

  • Địa chỉ
  • Đặt hàng

Mỗi đơn hàng có hai trường:

  • địa chỉ hóa đơn
  • Địa chỉ giao hàng

Tôi muốn mỗi trường trỏ đến cùng một địa chỉ (nếu người dùng muốn hàng hóa được vận chuyển đến địa chỉ lập hóa đơn) hoặc hai địa chỉ khác nhau (nếu địa chỉ giao hàng khác với địa chỉ lập hóa đơn).

Tôi sẽ xây dựng mối quan hệ như thế nào cho mục đích này?

Đây là những gì tôi đã thử:

đơn đặt hàng.php

chức năng công cộng orderAddress() {
return $this->hasOne('App\Address');
}

chức năng công cộng DeliveryAddress() {
return $this->hasOne('App\Address');
}

địa chỉ.php

trật tự chức năng công cộng() {
return $this->belongsTo('App\Order');
}

Nhưng tôi dường như không thể tìm ra cách gán hai địa chỉ khác nhau cho một đơn hàng.

Tôi đã cân nhắc việc sử dụng hasMany() mối quan hệ, nhưng nếu không Địa chỉ Việc chỉ định loại trong mô hình khiến cho việc xác định địa chỉ nào là địa chỉ khó trở nên khó khăn.

câu trả lời hay nhất

1.hiện hữuĐặt hàngTrong mô hình:

chức năng công cộng orderAddress()
{
return $this->hasOne('App\Address', 'invoice_address');
}

địa chỉ phân phối chức năng công cộng()
{
return $this->hasOne('App\Address', 'delivery_address');
}

hiện hữuĐịa chỉTrong mô hình:

chức năng công cộng orderForInvoiceAddress()
{
return $this->belongsTo('App\Order', 'invoice_address');
}

chức năng công cộng orderForDeliveryddress()
{
return $this->belongsTo('App\Order', 'delivery_address');
}

2. Nhưng tôi nghĩ cách tốt hơn để xử lý vấn đề này là sử dụng khóa ngoại tiêu chuẩn order_id và thêm kiểu Danh sách:

chức năng công cộng orderAddress()
{
return $this->hasOne('App\Address')->where('type', 1);
}

địa chỉ phân phối chức năng công cộng()
{
return $this->hasOne('App\Address')->where('type', 2);
}

hiện hữu Địa chỉ Trong mô hình:

trật tự chức năng công cộng()
{
return $this->belongsTo('App\Order');
}

Về php - Laravel Eloquent Mối quan hệ - Hai địa chỉ giao hàng khác nhau được liên kết với một mô hình đơn hàng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/48523668/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress