【问题标题】:delete row permanently from database with delete button(laravel)使用删除按钮从数据库中永久删除行(laravel)
【发布时间】:2018-02-19 17:18:45
【问题描述】:

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

这是我的按钮代码,格式为将 id 发送到销毁函数。

{!! 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 列。

【问题讨论】:

  • 因为你使用的是SoftDeletes

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


【解决方案1】:

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

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

Documentation

【讨论】:

    【解决方案2】:

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

    FeedModel

    protected $table = 'feed_news';
    
    protected $dates = ['deleted_at'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 2013-11-07
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多