CakePHP进销存应用程序&从另一个控制器/模型中删除数据

时间:2013-01-01 13:16:27

标签: mysql database cakephp cakephp-2.0

我是CakePHP的新手,我可以提供一些新手的建议。

我正在创建一个发票应用程序,我设置它的方式是使用单独的表格(以及模型和控制器)来处理发票和项目。例如,Invoice表保存“发票编号”,“日期”和“客户ID”等数据,而Items表存储构成每张发票的单个记录/项目,其中包含“数量”,“单价”等。两个正确关联。

当我调用发票的“编辑”视图时,显然会传递一个ID,我会检索记录,然后循环遍历从Items表返回的所有相关记录 - 所有工作都按计划进行,并且可以正确检索和显示。

我希望从这个视图中能够做到的是,能够通过点击每个项目旁边的删除按钮来删除发票中的单个项目 - 最好是使用确认框。这将如何实现?什么是最好的方法?我会在Items控制器中使用一个函数来执行此操作而不离开页面吗?如何从发票控制器/视图中调用该控制器中的功能?或者是否会使用另一种方法,例如CakePHP query()函数?

我希望我已经清楚地解释了这个设置,以便有人提供任何帮助和/或建议,我会非常感激。

提前致谢

1 个答案:

答案 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());
}
}