Laravel 查询生成器删除项目通知

Laravel Query builder Delete Item Notification

我正在尝试根据输入数据从 Laravel 4.2 查询中名为 project 的 table 中删除一个条目。

我所做的是-

 DB::table('project')->where('project.id', '=', Input::get('id'))->delete();

但问题是,我怎么知道数据是否被删除了呢?

任何人都可以帮忙吗?

$id = Input::get('id');
$entryObj = ProjectModel::findorfail($id); // Assuming you have model
// It's bad practise to delete on DB:table because you won't be able to use 
//soft-deletes or observers won't trigger if you don't use models.

if($entryObj){
    if(!$entryObj->delete()){
        throw new Exception('Now we know that it failed to delete');
    }else{
         echo "100% record is deleted.";
    }
}

但在那种情况下,假设您不关心 models/observers/soft-deletes

if(DB::table('project')->where('project.id', '=', Input::get('id'))->delete()){
   echo "successfully deleted";
}

请注意,这是非常非常糟糕的做法,首先我们不测试 Input::get('id') 里面可能有大象或猫,或者假设它应该有userId=1 但是因为他们想弄乱你的数据,所以他们在客户端修改了 html 说它是 50。Boom 那里有用户 50 的数据,如果你考虑一下这就是灾难。

忘了说快捷方式

如果是id那么也可以用

ProjectModel::destroy($id); //to delete

删除语句return影响了多少条记录。因此,您可以检查 return 值是否大于零。在您的情况下,假设 id 是唯一的,它应该始终为 1。所以 if 语句 if equals one then delete 是成功的