删除功能不起作用cakephp

时间:2013-08-01 12:27:06

标签: cakephp cakephp-2.0 cakephp-2.1

我正在开发一个Cakephp 2.x ...我想从数据库中删除一条记录  我的数据库中有一个名为图像的表,其中包含以下字段。     idImage,USER_ID,文件名,文件大小,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";
        }

但代码无效。不删除db

中的记录

1 个答案:

答案 0 :(得分:4)

id,而不是imageId

在Image模型上设置imageId根本不起作用。如果模型的主键不是id,则必须configure the model,以便Cake知道这一点并使用您选择的主键字段而不是id

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

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

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

这将尝试删除具有给定$imageId的图像。

或者只是pass it to the delete function

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
));