首页 > 其他 > 详细

任务34:管理员【软删除】

时间:2020-05-18 17:45:43      阅读:60      评论:0      收藏:0      [点我收藏+]

1,数据的删除包括【物理删除】和【软删除】2种,实际工作中以软删除比较多,类似 windows 上的回收站的功能。

找到 \resources\views\Admin\User\index.blade.php 管理员列表页的 删除 按钮,编辑 超链如下

<a href="#" onclick="bootbox_confirm(‘{{route(‘admin.user.delete‘,array(‘id‘=>$user[‘id‘]))}}‘)" class="btn btn-danger btn-sm shiny">
    <i class="fa fa-trash-o"></i> 删除
</a>

其中 JS 的 bootbox_confirm() 方法是要在  \resources\views\Admin\User\main.blade.php 中引用 bootbox.js 和定义 bootbox_confirm() 如下所示

技术分享图片

 

代码如下:

<script src="{{asset(‘static‘)}}/admin/style/bootbox.js"></script>
<script>
  function bootbox_confirm(n){
        bootbox.confirm("<i class=\"fa fa-warning\" style=\"font-size:30px;color:#d73d32;\"></i>&nbsp;&nbsp;确定删除么?", function (result) {
            if (result) {
               window.location.href = n;
            }
        });
    };
</script>

然后,浏览器访问 http://laravel.pensive.top/admin/users 随机点击 用户列表中 的 删除按钮 ,界面 效果如下

技术分享图片

2, App\Http\Controllers\Admin\UserController.php 修改 delete() 方法

    public function delete(Request $request,int $id){
        $del = User::destroy($id);
        if($del){
            return redirect()->back()->with(‘success-msg‘,‘删除用户成功!‘);
        }else{
            return redirect()->back()->with(‘danger-msg‘,‘删除用户失败!‘);
        }

    }

至此,已可以 测试 物理删除,没问题了的。

3,下面继续完善成【软删除】。

\database\migrations\2020_05_02_111103_create_users_table.php 修改 up() 方法 增加

  $table->softDeletes();

如下图所示位置:

技术分享图片

4, 命令行 执行命令

php artisan migrate:refresh --seed

如下图,会重新 生成用户数据表和模拟数据,并多了一个 deleted_at 的时间字段【注:所谓软删除就是删除操作时在这个字段写入删除的时间,而要删除的记录物理上是没有被删除的,网页应用是通过这个字段来判断是否删除】

技术分享图片

新生成的用户表如下所示:

技术分享图片

5,在 App\Models\Admin\User.php  改为

<?php

namespace App\Models\Admin;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\user as Authorization;

class User extends Authorization
{
    use SoftDeletes;
    protected $dates = [‘delete_at‘];
    protected $guarded = []; //把不能往数据表添加的字段设为空,如:@crsf 创建的token隐藏字段
}

6,浏览器 访问 http://laravel.pensive.top/admin/users  测试随机删除操作ID 为8 和 9 的用户后,正常操作成功下,后台数据表 如下图所示

技术分享图片

红框代表 软删除 操作 成功。

END

 

任务34:管理员【软删除】

原文:https://www.cnblogs.com/pensive/p/12911983.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!