Cakephp アプリでデータを削除しているときに、次のエラーが発生します。
Undefined index: Image [CORE/cake/libs/model/model.php, line 1477]
Model::updateCounterCache() - CORE/cake/libs/model/model.php, line 1477
Model::delete() - CORE/cake/libs/model/model.php, line 1842
ImagesController::delete() - APP/controllers/images_controller.php, line 67
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 204
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171
[main] - APP/webroot/index.php, line 86
このエラーが発生している私のコードは次のとおりです。
$this->Image->delete($image_id);
$image_id が null ではなく正しいことを確認しました。また、この特定の行によってエラーが発生することも確認しました。私はimages_controllerの中にいます。私はCakephp 1.3を使用しています。
ここに私の画像モデルコードがあります:
class Image extends AppModel {
var $name = 'Image';
var $belongsTo = "User";
function afterFind($results)
{
/*some custom afterfind work here */
}
}
画像はデータベースから削除されていますが、このエラーが発生し続けます。
====================================== 編集
関数の完全なコード:
function delete() {
$this->checkAuth();
$user_id = $user_id = $this->Auth->user('id');
if(!empty($this->data))
{
$image_id = $this->data['Image']['id'];
$image = $this->Image->find("first", array("conditions"=>array("Image.id"=>$image_id)));
if($image) {
if($image['Image']['user_id']==$user_id){
$this->Image2->delete_image($image['Image']['image_path'],"upload");
//echo "image id:".$image_id;
$this->Image->delete(intval($image_id));
$this->set("success","1");
$this->set("msg","Image deleted successfully.");
}
else {
$this->set("success","0");
$this->set("msg","You do not have permission to delete this image.");
}
}
else {
$this->set("success","0");
$this->set("msg","Cannot find image.");
}
}
else
{
$this->set("success","0");
$this->set("msg","No data posted");
}
}
これからjsonを出力するため、ビューには何もありません。