0

我是 CakePHP 的新手,请给我一些新手建议。

我正在创建一个发票应用程序,我设置它的方式是为发票和项目使用单独的表(以及模型和控制器)。Invoice 表包含诸如“Invoice Number”、“Date”和“Client ID”之类的数据,Items 表存储构成每个发票的单独记录/项目,其中包含“Quantity”、“Unit Price”等。两个正确关联。

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

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

我希望我已经足够清楚地解释了此设置,以便有人提供任何帮助和/或建议,对此我将不胜感激。

提前致谢

4

1 回答 1

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());
}
}
于 2013-01-01T13:35:09.410 回答