Php 从其他模型中删除记录

Php 从其他模型中删除记录,php,cakephp,Php,Cakephp,我有模型:销售和跟踪。下表有一个id、一个用户id和一个销售id。 我想做的是:在sales_控制器上,我需要找到一个follow记录,该记录具有经过身份验证的用户id和作为参数传递的sale_id 以下是我尝试过的: 尝试1 App::import('model','Follow'); $follow = new Follow(); $follow->user_id = $this->Auth->user('id'); $follow->sale_id = $id; $

我有模型:销售和跟踪。下表有一个id、一个用户id和一个销售id。 我想做的是:在sales_控制器上,我需要找到一个follow记录,该记录具有经过身份验证的用户id和作为参数传递的sale_id

以下是我尝试过的:

尝试1

App::import('model','Follow');
$follow = new Follow();
$follow->user_id = $this->Auth->user('id');
$follow->sale_id = $id;
$follow->delete();
尝试2

App::import('model','Follow');
$follow = new Follow();
$follow->delete(array('Follow.user_id'=>$this->Auth->user('id'), 'Follow.sale_id'=>$id));
尝试3

App::import('model','Follow');
$follow = new Follow();
$result = $follow->find('first',array('conditions'=>array('Follow.user_id'=>$this->Auth->user('id'), 'Follow.sale_id'=>$id)));
$result->delete()
尝试4

 var $uses = array('Sale', 'Follow');
 (...)
 $result = $this->Follow->find('first',array('conditions'=>array('Follow.user_id'=>$this->Auth->user('id'), 'Follow.sale_id'=>$id)));
 $result->delete();
在尝试3和4中,
$result
确实返回了我期望的值,但delete不起作用

但是这些尝试都没有成功。

在控制器中尝试:

    var $uses = array('MyOriginalModelName', 'Follow');
然后,
$this->Follow
将起作用。 而且,如果您真的想从控制器的“使用”列表中删除,那么将其添加到控制器的“使用”列表中似乎也是合乎逻辑的


在旁注中,您可能需要签出。

能否先获取符合条件的记录(而不是创建新的
Follow
对象),然后对其调用
delete()
?这不是最有效的方法,但Active Record似乎就是这样工作的……但我可以在执行App::Import之后执行$this->Follow吗?我尝试过查找:$this->Follow->find('first',array('conditions'=>array('Follow.user\u id'=>$this->Auth->user('id'),'Follow.sale\u id'=>$id))),但它没有返回任何结果。。。我在这里做错了什么吗?谢谢,这似乎是使用App::Import更好的方法。我已经可以找到要删除的记录并将其存储在$result中$结果=$this->Follow->find('first',array('conditions'=>array('Follow.user\u id'=>this->Auth->user('id'),'Follow.sale\u id'=>$id));但是“$result->delete()”仍然不起作用:S。我也不知道为什么。我不应该使用find方法吗?$result->delete()对我来说毫无意义$这个->跟随->删除($result)如果你想继续下去:)嗯,好吧,不是真的,我有点匆忙:)所以$this->跟随->删除($result['follow']['id']);确切地说,谢谢你,就这样!我仍然是@Cakephp的新手,所以我不知道delete:P有什么问题。再次感谢您的快速响应。Np mate。您所需要的只是模型(如果您在另一个模型中,或者出于某种原因不想设置$uses数组,则可以使用loadModel()函数获取该模型)和记录的id-因此,只有在您不知道要删除的确切id时,才需要find()