所以说我想为我的系统只保存一个特定交易的2个字段*基本上我从库存库存中取出物品"
public function admin_take($id = null) {
if (!$this->Inventory->exists($id)) {
throw new NotFoundException(__('Invalid inventory item'));
}
if ($this->request->is(array('post', 'put'))) {
if ($this->request->data['Inventory']['amount_taken'] < $this->Inventory['Inventory']['amount']){
amt = $this->request->data['Inventory']['amount_taken'];
$this->Inventory['Inventory']['amount'] = $this->Inventory['Inventory']['amount'] - amt;
$this->Inventory['Inventory']['amount_taken'] = $this->Inventory['Inventory']['amount_taken'] + amt;
$this->Inventory->saveField('amount_taken','x');
$this->Inventory->saveField('amount','y');
$this->Session->setFlash(__('The inventory item has been saved.'));
return $this->redirect(array('action' => 'index'));
}
else if ($this->request->data['Inventory']['amount_taken'] > $this->Inventory['Inventory']['amount']) {
$this->Session->setFlash(__('request could not be processed, not enough inventory stock to fulfil request .'));
}
else {
$this->Session->setFlash(__('The request could not be processed, please try again.'));
}
}
}
else {
$options = array('conditions' => array('Inventory.' . $this->Inventory->primaryKey => $id));
$this->request->data = $this->Inventory->find('first', $options);
}
}
是否可以使用包含上述算术运算中的变更数据的变量替换saveField中的x和Y?
我看到的大多数示例都倾向于使用saveField $ stringValue中的实际字符串,如果我真的需要字符串?我将如何处理字符串替换?
答案 0 :(得分:1)
Dave的答案确实是正确的,只需改变它并看到。 Cakephp已经完成了许多数据库操作,而且你的代码做了很多次。
$this->Inventory->saveField('amount_taken','x');
$this->Inventory->saveField('amount','y');
是2个操作。更好的是:
$this->Inventory->save(array('amount_taken' =>'x', 'amount' => 'y'));
或
$this->Inventory->set('amount_taken','x');
$this->Inventory->set('amount','y');
$this->Inventory->save();
答案 1 :(得分:0)
是否可以使用变量替换saveField中的x和Y. 包含上述算术运算中的改变数据?
是的。试试吧,你会发现它有效。
我将如何处理字符串替换?
步骤1)替换&#39; x&#39;或者&#39; y&#39;用你的算术运算。这可以通过使用你的&#34;复制&#34;和&#34;粘贴&#34;快捷键。 (在Windows上按Ctrl + C / Ctrl + P)
步骤2)庆祝!