2017-07-31 108 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); –