laravel and lumen 软删除操作
2018-06-22 05:33:50来源:未知 阅读 ()
知识都是有联系的,这绝对是真理。作为一名小白,看了一点官方文档,把我自己理解的软删除操作给大家讲讲。有些就是套用官方文档的话。
定义:什么是软删除呢,所谓软删除指的是数据表记录并未真的从数据库删除,而是将表记录的标识状态标记为软删除,这样在查询的时候就可以加以过滤,让对应表记录看上去是被”删除“了。
通俗易懂说法:数据库的表中,使用了一个日期字段作为标识状态,这个日期字段可以自定义,这里我们使用deleted_at
,如果对应模型被软删除,则该条记录的deleted_at
字段的值为删除时间,否则该值为空。
开始操作:
我选择使用laravel 做示例,因为lumen的artisan命令太少。主要是原理!!!
添加model文件,并创建blog_users表.
运行如下命令:
php artisan make:model blogUser --migration
现在,已经生成了model文件,还有迁移文件。
我们用命令生成数据表,如下:
php artisan migrate
现在还差一个字段,就是deleted_at字段。继续命令,
php artisan make:migration alter_posts_deleted_at --table=blog_users
然后编辑生成的PHP文件如下:
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class AlterPostsDeletedAt extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('blog_users', function (Blueprint $table) { //我新加部分如下一行 $table->softDeletes(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('blog_users', function (Blueprint $table) { // }); } }
记得在migrations 文件夹中,把生成表的那个文件删掉,在继续执行如下命令,
php artisan migrate
你看deleted_at字段出来了吧。
好了,我要写代码了,不命令行了,哈哈哈。
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class blogUser extends Model { //使用软删除 use SoftDeletes; //设置表名 public $table = 'blog_users'; //设置主键 public $primaryKey = 'id';
protected $dates = ['deleted_at']; }
现在,我们去控制器中吧,看看软删除好了没。
<?php namespace App\Http\Controllers; use App\blogUser; class BlogUsedController extends Controller { public function softdel(){ $post = blogUser::find(1); $post->delete(); if($post->trashed()){ echo '软删除成功!'; dd($post); }else{ echo '软删除失败!'; } } }
执行结果:
lumen 也是这个原理,到时候,你数据表就手动创建,别用命令生成。model代码与控制器代码是主要的。
结束了,大功告成,如有不理解地方,请评论留言。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- laravel实现批量更新多条记录的方法示例 2020-02-19
- Laravel中七个非常有用但很少人知道的Carbon方法 2020-02-15
- Laravel如何使用数据库事务及捕获事务失败后的异常详解 2020-02-08
- Laravel 中 “规范” 的开发短信验证码发送功能 2020-02-08
- Laravel中获取路由参数Route Parameters的五种方法示例 2020-02-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash