1

私は Cakephp 2.x で作業しています ...データベースから単一のレコードを削除したい データベースにImageというテーブルがあります..次のフィールドが含まれています.. idImage,User_id,filename,filesize,filemime

idImage=imageid の単一レコードを削除したい

      delete * from posts where imageid = 3'

私はこれをやっています..画像IDの値は4になりました

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

しかし、コードは機能していません.dbからレコードを削除していません

4

1 に答える 1

4

imageId ではなく ID

Image モデルの設定imageIdはまったく効果がありません。モデルの主キーが でない場合、Cake がこれを認識し、 の代わりに選択した主キー フィールドを使用するようにモデルを構成するid必要があります。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 に答える