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 是成功的
我正在尝试根据输入数据从 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 是成功的