2014-02-02 5 views
1

Я не могу успешно удалить элемент с Asset::destroy($id), когда включено мягкое удаление (с protected $softDelete = true; в модели). Элемент не удаляется, а deleted_at не обновляется. Однако, если я удаляю строку мягкого удаления из модели, то элемент удаляется из базы данных. Я не смог получить мягкое удаление для работы или даже выяснить причину этой проблемы.Мягкое удаление не работает в Laravel 4

Это мой Эссет код модели,

<?php 

class Asset extends Eloquent { 

    protected $guarded = array(); 

    protected $softDelete = true; 

    public static $rules = array(
      'message' => 'required' 
     ); 

    public static function validate($data) 
    { 
     return Validator::make($data, static::$rules); 
    } 
} 
+0

Можете ли вы показать нам класс модели «Asset»? –

+0

Plz, введите код своей модели. –

+0

@RubensMariuzzo Код модели актива размещен .. – Stranger

ответ

2

У вас есть $table->softDeletes(); заявление в вашей миграции для этой таблицы, в частности?

Это тот, который вам нужен, чтобы laravel знал, что он должен создать поле delete_at, что указывает на то, что вы его удалили или нет! = D

+0

Если я добавлю вручную поле «deleted_at», это все равно работает? или необходимо перенести таблицу? – Lucabro

+1

Я думаю, что это может решить проблему ... но я не уверен! Никогда не пытался!! –

+2

@Lucabro Я попытался добавить это поле вручную в mysql и сделал его TIMESTAMP и обнуляемым, но почему-то он автоматически всегда превращался в NOT NULL и получил значение по умолчанию, заполненное чем-то 000 000. Именно поэтому он не сработал. Он работает, когда мы создаем таблицу с помощью $ table-> softDeletes() внутри миграций –

Смежные вопросы