我是CakePHP的新手,我可以提供一些新手的建议。
我正在创建一个发票应用程序,我设置它的方式是使用单独的表格(以及模型和控制器)来处理发票和项目。例如,Invoice表保存“发票编号”,“日期”和“客户ID”等数据,而Items表存储构成每张发票的单个记录/项目,其中包含“数量”,“单价”等。两个正确关联。
当我调用发票的“编辑”视图时,显然会传递一个ID,我会检索记录,然后循环遍历从Items表返回的所有相关记录 - 所有工作都按计划进行,并且可以正确检索和显示。
我希望从这个视图中能够做到的是,能够通过点击每个项目旁边的删除按钮来删除发票中的单个项目 - 最好是使用确认框。这将如何实现?什么是最好的方法?我会在Items控制器中使用一个函数来执行此操作而不离开页面吗?如何从发票控制器/视图中调用该控制器中的功能?或者是否会使用另一种方法,例如CakePHP query()函数?
我希望我已经清楚地解释了这个设置,以便有人提供任何帮助和/或建议,我会非常感激。
提前致谢
答案 0 :(得分:0)
简单的方法:
在Invoice / view.ctp中 在你的foreach循环中你会做这样的事情:
//this is loose code since you have not pasted any in your question
<?php echo $this->Html->link('Delete', array('controller'=>'Item', 'action'=>'delete', $item['Item']['id'])); ?>
然后在ItemController.php中创建函数
function delete($id=NULL){
if($id){
$this->Item->delete($id);
$this->Session->setFlash(__('Invoice item deleted', true));
$this->redirect($this->referer());
}
}