【发布时间】:2017-05-04 04:31:08
【问题描述】:
您好,我是 cakephp 新手,并试图弄清楚事情是如何运作的。
所以我有两张表,一张是客户 Payments,另一张是客户 Charges。当我向 Payments 表添加一个值时,如何从 Charges 中减去一个值?
例如 - 客户 X 的费用为 100。当我从付款中选择客户 X 并选择 20 的付款时。费用表中的答案应为 80。并且应该在 Payments 表中记录客户 X 也已付款。
我正在提交表单中的值。并将其发送给支付控制器。
public function addPaymentsCustomer()
{
$this->viewBuilder()->layout(false);
$payment = $this->Payments->newEntity();
if ($this->request->is('post')) {
$payment = $this->Payments->patchEntity($payment, $this->request->data);
if ($this->Payments->save($payment)) {
$this->Flash->success(__('The payment has been saved.'));
return $this->redirect( '/payments' );
} else {
$this->Flash->error(__('The payment could not be saved. Please, try again.'));
return $this->redirect( '/payments' );
}
$this->Flash->error(__('Error.. Please, try again.'));
return $this->redirect( '/payments' );
}
}
我该如何做同样的事情并从 Charges 表中减去该值?
我在哪里可以进行计算以及如何计算?
这是我向控制器发送值的表单。
<form role="form" method="post" accept-charset="utf-8" action="/add-payments-customer">
<div style="display:none;"><input type="hidden" name="_method" value="POST"/></div>
<br style="clear:both">
<div class="form-group">
<div class="input-group col-md-5 col-lg-5 col-sm-5 col-xs-12">
<select class="form-control" style="background-color: #F9F9F9;" name="customer_id" id="customer_id" onchange="this.form.submit()">
<option style="padding-top: 20px;">Select a Customer</option>
<?php
if (!empty($CustomerInfo)) {
foreach ($CustomerInfo as $Customers):
?>
<option value="<?= h($Customers->id)?>"><?= h($Customers->name)?></option>
<?php endforeach; } ?>
</select>
</div>
</div>
<div class="form-group">
<input type="text" class="form-control secondlead" id="description" name="description" placeholder="Description" required>
</div>
<div class="form-group">
<input type="number" id="amount" name="amount" class="form-control secondlead" placeholder="Amount">
</div>
<div class="pull-left">
<button type="submit" id="submit" name="submit" class="btn btn-primary greenbtn">Send</button>
</div>
<div style="margin-top: 10px" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<p class="text-center"><?= $this->Flash->render() ?></p>
</div>
</form>
表格 Payments & Charges 都有一个 Customer_id 的 FK。
【问题讨论】:
-
您的意思是客户的收费金额已经存储在表格中,您需要在付款完成时减少该收费金额吗?
-
是的,完全正确,并且在提交完成后,付款记录会与客户 ID 一起添加,同时会减去该特定客户的费用。
-
好吧,如果你添加你的表格会更清楚!还要提到两个表是否有关系!
-
您可以通过在 mysql 中创建触发器来完成,或者您可以在成功后执行另一个查询来更新 Charges 表的数量。检查此链接stackoverflow.com/questions/21848149/…
-
@ManoharKhadka 嗨,我添加了用于向 PaymentsController 发送数据的表单。
标签: php mysql cakephp cakephp-2.0 cakephp-3.0