Thực hiện soft delete như thế nào trong Laravel?
Thực hiện soft delete như thế nào trong Laravel?
Trong Laravel, việc thực hiện soft delete cho phép bạn đánh dấu các bản ghi như đã bị xóa mà không thực sự xóa chúng khỏi cơ sở dữ liệu. Điều này được thực hiện bằng cách thêm một cột deleted_at
vào bảng của bạn. Khi một bản ghi được soft delete, cột deleted_at
sẽ được đánh dấu với một dấu thời gian. Bản ghi này sẽ không xuất hiện trong các kết quả truy vấn thông thường nhưng vẫn có thể được truy xuất nếu cần.
Để sử dụng soft deletes, bạn cần đảm bảo rằng model của bạn đã được cấu hình để hỗ trợ tính năng này. Bạn cần sử dụng trait SoftDeletes
và khai báo deleted_at
trong mảng $dates
của model.
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
}
Bạn cần thêm cột deleted_at
vào bảng của bạn. Điều này có thể được thực hiện thông qua migration. Sử dụng phương thức softDeletes
trong định nghĩa bảng của bạn.
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddSoftDeletesToPosts extends Migration
{
public function up()
{
Schema::table('posts', function (Blueprint $table) {
$table->softDeletes();
});
...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào