码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-05-18 18:11:55      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:control   cli   不能   cte   编辑   san   image   index   windows   

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:管理员【软删除】

标签:control   cli   不能   cte   编辑   san   image   index   windows   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!