我正在尝试根据输入数据从Laravel 4.2查询中的名为 project 的表中删除一个条目。
我所做的是 -
DB::table('project')->where('project.id', '=', Input::get('id'))->delete();
但问题是,我怎么知道数据是否被删除?
Anypne可以帮忙吗?
答案 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则则删除成功