我在Laravel 4上遇到了一个小问题。我想在记录中使用delete()
方法但由于某种原因它实际上并没有删除记录。 destroy()
确实如此,所以我的代码很好。此外,如果我将Teetime::where('date', '=', $formattedDate)->count()
传递给我的视图,我会得到一个正确的。有什么问题?
if($action=="delete") {
$teetime = Teetime::where('date', '=', $formattedDate)->firstOrFail();
// for some reason $teetime->delete() doesn't work
Teetime::destroy($teetime->id);
}
答案 0 :(得分:57)
destroy
是直接删除实体的正确方法(通过对象或模型)。示例:
$teetime = Teetime::where('date', '=', $formattedDate)->firstOrFail();
$teetime->destroy();
delete
只能在查询构建器示例:
$teetime = Teetime::where('date', '=', $formattedDate)->delete();
来自文档:
User::destroy(1);
User::destroy(array(1, 2, 3));
User::destroy(1, 2, 3);
当然,您也可以在一组模型上运行删除查询:
$affectedRows = User::where('votes', '>', 100)->delete();