1

我正在使用 Cakephp 2.x ...我想从数据库中删除一条记录我的数据库中有一个名为Image的表.. 它包含以下字段.. idImage,User_id,filename,filesize,filemime

我想用 idImage=imageid 删除单条记录

      delete * from posts where imageid = 3'

我正在这样做..image id 现在的值为 4

      $this->Image->imageId = $imageId;
if($this->Image->delete()){
        echo "successfull";
    }else{
            echo "not";
        }

但代码不起作用。不从数据库中删除记录

4

1 回答 1

4

id,而不是 imageId

Image 模型上的设置imageId将完全没有效果。如果模型的主键不是id,则需要配置模型,以便 Cake 知道这一点,并将使用您选择的主键字段而不是id.

<?php
class Image extends AppModel {
    $primaryKey = 'imageId';

无论主键的值如何,设置为使用问题中的语法的属性是:

$this->Image->id = $imageId;
if($this->Image->delete()){

这将尝试使用给定的$imageId.

或者,只需将其传递给删除函数

if($this->Image->delete($imageId)){

删除没有主键

如果目标是按不是主键的值删除,请先查找它:

$id = $this->Image->field('id', array('imageId' => $imageId));
if ($id && $this->Image->delete($id)) {
    ...

或使用deleteAll

// delete 1 or more records with a matching field value
$this->Image->deleteAll(array(
    'imageId' => $imageId
));
于 2013-08-01T12:33:17.087 回答