“Laravel查询”构建器“删除项目通知”

时间:2015-09-18 04:35:40

标签: php laravel laravel-4 laravel-5 query-builder

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

我所做的是 -

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

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

Anypne可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

$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.";
    }
}

但是,假设在那种情况下你不关心模型/观察者/软删除

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

请注意,这是非常非常糟糕的做法首先我们不测试什么Input :: get('id')会让它可能是大象或猫在那里或让我们说它应该有userId = 1但是从那以后他们想把他们在客户端html上修改过的数据搞得一团糟,说它是50个。如果你想的话,那么用户50的数据就是灾难。

忘记提及快捷方式

如果是id,那么你也可以使用

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

答案 1 :(得分:0)

delete语句返回受影响的记录数。因此,您可以检查返回值是否大于零。在你的情况下,假设id是唯一的,它应该总是1。所以if语句如果等于1则则删除成功