大家好 尝试完成创建在线商店的订单 但是在我之前的问题是没有将数据输入数据库 按此顺序,我使用ORM,例如RedBeamPHP 当您单击按钮时,订单状态应从新状态更改为已处理状态 我将不胜感激
这是我的OrderController.php
public function viewAction(){
$order_id = $this->getRequestID();
$order = \R::getRow("SELECT `order`.*, `user`.`name`, ROUND(SUM(`order_product`.`price`), 2) AS `sum` FROM `order`
JOIN `user` ON `order`.`user_id` = `user`.`id`
JOIN `order_product` ON `order`.`id` = `order_product`.`order_id`
WHERE `order`.`id` = ?
GROUP BY `order`.`id` ORDER BY `order`.`status`, `order`.`id` LIMIT 1", [$order_id]);
if(!$order){
throw new \Exception('Страница не найдена', 404);
}
$order_products = \R::findAll('order_product', "order_id = ?", [$order_id]);
$this->setMeta("Заказ №{$order_id}");
$this->set(compact('order', 'order_products'));
}
public function changeAction(){
$order_id = $this->getRequestID();
$status = !empty($_GET['status']) ? '1' : '0';
$order = \R::load('order', $order_id);
if(!$order){
throw new \Exception('Страница не найдена', 404);
}
$orders->status = $status;
$orders->update_at = date("Y-m-d H:i:s");
\R::store($order);
$_SESSION['success'] = 'Изменения сохранены';
redirect();
}
<section class="content-header">
<h1>
Заказ №<?=$order['id'];?>
<?php if(!$order['status']): ?>
<a href="<?=ADMIN;?>/order/change?id=<?=$order['id'];?>&status=1" class="btn btn-success btn-xs">Одобрить</a>
<?php else: ?>
<a href="<?=ADMIN;?>/order/change?id=<?=$order['id'];?>&status=0" class="btn btn-default btn-xs">Вернуть на доработку</a>
<?php endif; ?>
<a href="<?=ADMIN;?>/order/delete?id=<?=$order['id'];?>" class="btn btn-danger btn-xs delete">Удалить</a>
</h1>
<ol class="breadcrumb">
<li><a href="<?=ADMIN;?>"><i class="fa fa-dashboard"></i> Главная</a></li>
<li><a href="<?=ADMIN;?>/order">Список заказов</a></li>
<li class="active">Заказ №<?=$order['id'];?></li>
</ol>
</section>
<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box">
<div class="box-body">
<div class="table-responsive">
<table class="table table-bordered table-hover">
<tbody>
<tr>
<td>Номер заказа</td>
<td><?=$order['id'];?></td>
</tr>
<tr>
<td>Дата заказа</td>
<td><?=$order['date'];?></td>
</tr>
<tr>
<td>Дата изменения</td>
<td><?=$order['update_at'];?></td>
</tr>
<tr>
<td>Кол-во позиций в заказе</td>
<td><?=count($order_products);?></td>
</tr>
<tr>
<td>Сумма заказа</td>
<td><?=$order['sum'];?> <?=$order['currency'];?></td>
</tr>
<tr>
<td>Имя заказчика</td>
<td><?=$order['name'];?></td>
</tr>
<tr>
<td>Статус</td>
<td><?=$order['status'];?></td>
</tr>
<tr>
<td>Комментарий</td>
<td><?=$order['note'];?></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>Детали заказа</h3>
<div class="box">
<div class="box-body">
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>ID</th>
<th>Наименование</th>
<th>Кол-во</th>
<th>Цена</th>
</tr>
</thead>
<tbody>
<?php $qty = 0; foreach($order_products as $product): ?>
<tr>
<td><?=$product->id;?></td>
<td><?=$product->title;?></td>
<td><?=$product->qty; $qty += $product->qty?></td>
<td><?=$product->price;?></td>
</tr>
<?php endforeach; ?>
<tr class="active">
<td colspan="2">
<b>Итого:</b>
</td>
<td><b><?=$qty;?></b></td>
<td><b><?=$order['sum'];?> <?=$order['currency'];?></b></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</section>