diff --git a/app/AdminAgent/Controllers/OrderController.php b/app/AdminAgent/Controllers/OrderController.php index 37e452f..c196ad4 100644 --- a/app/AdminAgent/Controllers/OrderController.php +++ b/app/AdminAgent/Controllers/OrderController.php @@ -7,6 +7,8 @@ use App\AdminAgent\Extensions\Grid\ChangeOrderStatus; use App\AdminAgent\Repositories\Order; use App\Common\OrderStatus; use App\Common\PayType; +use App\Models\OrderProductItem; +use App\Models\Product; use App\Models\Supplier; use Dcat\Admin\Admin; use Dcat\Admin\Form; @@ -14,6 +16,7 @@ use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Widgets\Table; +use Illuminate\Support\Facades\Storage; class OrderController extends AdminController { @@ -39,13 +42,21 @@ class OrderController extends AdminController $grid->column('product', '产品信息') ->display('查看') ->modal('购买产品信息', function ($modal) { - return Table::make(['产品名称', '产品图片', '购买数量', '所属供应商'], - [[ - $this->title, - '', - $this->num, - $this->product->supplier->name, - ]]); + $item = OrderProductItem::with(['supplier:id,name', 'product:id,title,pictures']) + ->where('order_id', $this->id) + ->get(['num', 'supplier_id', 'product_id']); + + $row = []; + foreach($item as $v) { + $picture = $v->product->picture ? Storage::disk('public')->url($v->product->picture) : ''; + $row[] = [ + $v->product->title ?? '', + '', + $v->num ?? '', + $v->supplier->name ?? '', + ]; + } + return Table::make(['产品名称', '产品图片', '购买数量', '所属供应商'], $row); })->xl(); //状态及退款处理 diff --git a/app/Models/OrderProductItem.php b/app/Models/OrderProductItem.php index 799ef5d..67d9e3c 100644 --- a/app/Models/OrderProductItem.php +++ b/app/Models/OrderProductItem.php @@ -16,13 +16,23 @@ class OrderProductItem extends BaseModel //$this->timestamps = false; } - function order() + public function order() { return $this->belongsTo(Order::class,'order_id','id'); } - function product() + public function product() { return $this->belongsTo(Product::class,'product_id','id'); } + + public function supplier() + { + return $this->belongsTo(Supplier::class); + } + + public function agent() + { + return $this->belongsTo(Agent::class); + } }