使用删除按钮(laravel)从数据库中永久删除行

时间:2018-02-19 09:03:44

标签: mysql laravel model-view-controller delete-row

我想通过删除按钮从数据库中永久删除行。

这是我的按钮代码,其形式是将id发送到destroy函数。

{!! Form::open(array('url' => 'admin/newsmaster/'.$value->id, 'class' => 'form-horizontal create_form', 'files' => true)) !!}
    <input type="hidden" name="_method" value="delete">
    <button type="submit" class="btn red">Delete</button>
</form>

这是我的销毁功能:

public function destroy($id)
    {
        $feed= Feed::find($id);
        $feed->delete();
        Session::flash('message', 'News Deleted Successfully.');
        $redirect = 'admin/newsmaster';
        return Redirect::to($redirect);
    }

这是我的Feed模型:

protected $table = 'feed_news';
use SoftDeletes;
protected $softDelete = true;
protected $dates = ['deleted_at'];

我的问题是,当我点击删除选项时,我的数据库中的行不会被删除,而是更新deleted_at列。

2 个答案:

答案 0 :(得分:0)

您正在使用Eloquent&#39; Soft Delete Trait。因此,您在FeedModel中指定软删除记录。通过从模型中删除它,Eloquent将永久删除特定行。

FeedModel

protected $table = 'feed_news';

protected $dates = ['deleted_at'];

答案 1 :(得分:0)

  

要从数据库中永久删除软删除的模型,请使用forceDelete方法:

$feed= Feed::find($id);
$feed->forceDelete();

Documentation