Laravel Admin 是一款非常受歡迎的開源後台管理框架,其擁有眾多便利的元件和外掛程式可供使用。其中,軟刪除功能是許多開發者必不可少的功能之一,能夠實現優雅的資料刪除和復原。本文將介紹 Laravel Admin 中的軟刪除功能,希望能幫助讀者更能掌握這一方面的知識。
首先,什麼是軟刪除?在傳統的資料刪除中,我們通常是透過實體刪除的方式將資料從資料庫中徹底刪除,這樣做可能會引發一些不必要的問題。例如誤刪資料、無法恢復資料等等。而軟刪除則是指在資料庫中不再物理刪除數據,而是在數據表中添加一列deleted_at
,當數據需要被刪除時,會將該列的值設為當前時間,相當於標記該資料已刪除。這樣,即使資料被刪除了,我們還能透過查詢 deleted_at
不為空的資料來找回被刪除的資料。
Laravel Admin 中的軟刪除功能非常容易實現,只需要建立一個 deleted_at
資料表欄位。在模型中,我們需要使用軟體刪除trait,即use SoftDeletes;
,來啟用軟體刪除,如下所示:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class Product extends Model { use SoftDeletes; protected $dates = ['deleted_at']; // ... }
這裡有一個$dates
屬性,代表要將這個欄位加入到carbon 實例化物件中,以便於我們對時間進行格式化和操作。
當我們使用 Laravel Admin 的資料表格元件時,它會自動將軟刪除的資料過濾掉。如果我們需要查看已被軟體刪除的數據,只需要在數據表格上方的篩選條件中,勾選「顯示已刪除資料」即可。
在 Laravel Admin 中,軟刪除資料也非常容易。只需要在控制器中呼叫 delete()
方法即可。此方法會將 deleted_at
欄位設定為目前時間,並標記該資料已被刪除。如果我們需要使用還原功能,則可以呼叫 restore()
方法,將被刪除資料的 deleted_at
欄位設為 null。
public function destroy($id) { Product::destroy($id); // 执行软删除 return redirect('/admin')->with(['success' => '删除成功']); } public function restore($id) { $product = Product::withTrashed()->find($id); $product->restore(); // 还原删除数据 return redirect('/admin')->with(['success' => '还原成功']); }
總之,Laravel Admin 中的軟刪除功能,為我們帶來了極大的便利性和靈活性。它可以幫助我們避免一些操作上的困難和安全問題,使我們的開發更有效率,也更加可靠。希望讀者能夠掌握本文所介紹的內容,並在實際的開發中應用到軟刪除功能。
以上是聊聊Laravel Admin中的軟刪除功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!