2017-07-31 84 views
0

我试图从数据库中删除记录我不得不写这样的代码:为什么删除和销毁方法不删除模型 - laravel

Route::get("/delete-student/{id}" , function ($id) 
{ 
    $student = \App\Student\Student::find($id); 
    $success = $student->delete(); 
    return ["success" => $success]; 
}); 

结果是ture但记录仍然在数据库中,我也尝试过这

$student = \App\Student\Student::destory($id); 

,但仍然没有被删除

这里的战绩是我的学生模型

class Student extends Model 
{ 
    protected $table = "student"; 
} 
+0

你是否在学生模型中使用softdelete? –

+0

@AddWebSolutionPvtLtd否 –

+0

@ EmadAl-Kabi你有没有检查过'$ student'对象值?它有价值与否? –

回答

0

我想你可以试试这个:

Route::get("/delete-student/{id}" , function ($id) 
{ 
    $student = \App\Student\Student::find($id); 
    $success = $student->forceDelete(); 
    return ["success" => $success]; 
}); 

希望这对你的工作!

+0

同样的问题,返回'真实',但记录仍然没有删除 –

1

我已经运行到了同样的问题,这个问题是因为列在我的架构名称

laravel假定每个表都有,如果命名主键列“ID”所以的主键是不相同的“ID”小写你应该重写通过添加$primaryKey属性模型这样

protected $primaryKey = “YOUR_EXACT_KEY” ; //in my case was “Id” 
+0

感谢我的朋友,解决问题,我的主键叫做“ID” –

+0

不客气我的朋友 – Ali

0

而不是寻找和删除你可以直接删除行如下

Route::get("/delete-student/{id}" , function ($id) 
{ 
    $success = \App\Student\Student::where('id',$id)->delete(); 

    return ["success" => $success]; 
}); 

这会在你的情况下工作。

+1

如果你想在1行,你可以摧毁它而不检索模型:\ App \ Student \ Student :: destroy($ id); –