首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel5.1 框架模型软删除操作实例分析

本文实例讲述了Laravel5.1 框架模型软删除操作。...分享给大家供大家参考,具体如下: 软删除是比较实用的一种删除手段,比如说 你有一本账 有一笔记录你觉得不对给删了 过了几天发现不应该删除,这时候软删除的目的就实现了 你可以找到已经被删除的数据进行操作...1 普通删除 在软删除之前咱先看看普通的删除方法: 1.1 直接通过主键删除 public function getDelete() { Article::destroy(1);...(); } ↑ 当我们删了这条数据后 在数据表中的表示是 deleted_at 不为空 它是一个时间值,当delete_at不为空时 证明这条数据已经删除了。...它会自动从查询数据中排除、就是它无法一般的查询语句查询到。

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

3分钟短文:Laravel说要用软删除,可不要真删

引言 我们不止一次在系列文章中讲到模型的“软删除”功能,因为现实场景中为了保证数据可追溯,我们几乎不会对数据库进行物理删除删除数据有可能会造成数据一致性的破坏,进而导致业务逻辑无法跑通。...所以,软删除的概念,极为重要。 本文我们仍然不厌其烦地讲解软删除的功能。 物理删除 其实就是真实地把数据从数据库条目清除,laravel模型提供了开箱即用的方法。...方法进行删除。...真实的SQL如下: DELETE FROM events WHERE id = 12; laravel提供了许多语法糖,上面使用 find 和 delete 两个步骤,可以缩减为一个方法 destroy...Laravel本身支持软删除,只需要进行少量的配置更改,以确保在执行delete或destroy时,模型的记录不会被实际删除。作为一个例子,我们修改Event模型以支持软删除

2.1K00

通过 Laravel 创建一个 Vue 单页面应用(五)

接下来,我们要在Delete按钮上绑定  onDelete()  回调,从而实现删除用户的功能。...(response); }); } 我们在 API 客户端调用 delete() 方法 ,然后绑定一个回调函数来注销控制台中的响应对象。...如何对成功删除用户作出相应的反馈 与更新一个用户不同的一点是,一旦我们成功删除了一个用户记录,那么数据库中就没有这个用户的记录了。在传统的网页应用中,我们会删除那条用户记录,然后重定向返回用户列表。...对于我们之前举的一个无效用户id的样例,我们设置的规则仍然无法正常起作用 ,因为从技术上来说,这个路由是有效的。...(id) { return client.delete(`users/${id}`); }, }; 现在,如果我想定制整个模块的工作方式而不影响方法,我可以在以后用一些配置替换掉 baseURL

4.4K20

Laravel API教程:如何构建和测试RESTful API

我们将使用HTTP动词的语义: GET:检索资源 POST:创建资源 PUT:更新资源 DELETE删除资源 ?...幂等函数,或幂等方法,是可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。...class); $this->call(UsersTableSeeder::class); } } 这样,我们可以简单地运行$ php artisan db:seed,它将在run()方法中运行所有调用的类...当一个动作执行成功,没有内容返回。 206:部分内容。当您必须返回分页的资源列表时很有用。 400: 错误的请求。无法通过验证的请求的标准选项。 401:未经授权 用户需要进行身份验证。...这需要与前端进行协调,以避免用户在没有访问任何内容的情况下保持记录

20.2K20

PHP-Laravel(DB类操作数据库)

四、DB类操作数据库(重点) 按照MVC 的架构,对数据的操作应该放在 Model 中完成,如果不使用Model,我们也可以用 laravel框架提供的 DB 类操作数据库。...①Update方法表示可以修改整个记录中的全部字段; ②Increment和decrement表示修改数字字段的数值(递增或者递减),典型的应用:记录登录次数、积分的增加; 案例:把id=1的名称,改名为...‘张三丰’ ->where()->update([ ]) 注意:where方法之后可以继续调用where之类的方法。...(delete)【了解】 在删除中,有两种方式:物理删除(本质就是删除)、逻辑删除(本质是修改) 数据删除可以通过delete函数和truncate函数实现, delete表示删除记录; truncate...表示清空整个数据表; DB::table(‘table_name’)->where(‘id’,‘1’)->delete(); 例如:删除id小于3的记录 【补充:truncate】 语法:DB::table

3.6K20

通过 Laravel 查询构建器实现简单的增删改查操作

原生删除语句 要删除数据表记录,可以通过 DB 门面的 delete 方法实现: $id = 8; $affectedRows = DB::delete('delete from `users` where..., [$id]); 和更新语句一样,如果删除成功,该方法返回受影响行数,删除记录不存在,返回 0,删除出错,抛出 QueryException 异常。...更新记录 更新数据库记录通过 update 方法来完成,我们可以在该方法中传入待修改字段及对应修改值数组: $id = 11; $affectedRows = DB::table('users')->where...通过查询构建器删除记录可以通过 delete 方法来实现: $id = 11; $affectedRows = DB::table('users')->where('id', '>=', $id)->...delete(); 同样,我们通过 where 方法指定删除 id >= 11 的记录delete 方法返回受影响行数,具体逻辑和原生删除语句也是一样的。

4.1K20

通过 Laravel Eloquent 模型实现批量赋值和软删除

实现原理 Eloquent 模型类为我们提供了「软删除」功能的支持。这就意味着,在 Laravel 中,我们不需要编写任何额外代码就可以实现对数据库记录的「软删除」。...这样我们在模型类上做所有常规查询操作的时候就会过滤掉删除记录(这些常规查询在上一篇教程中已经给出)。...要软删除一条记录,在对应模型类实例上调用 delete 方法即可,底层会自动将数据表的 deleted_at 字段设置为当前时间,表示该记录已经删除」。...相关方法 要判断一条记录是否删除,可以通过 trashed 方法: $post = Post::findOrFail(32); $post->delete(); if ($post->trashed...在某些场景下,你可能只需要获取删除记录,这可以通过 onlyTrashed 方法来实现: $post = Post::onlyTrashed()->where('views', 0)->get()

2.3K10

使用Entrust扩展包在laravel 中实现RBAC的功能

处理方法:vendor- zizaco- entrust- src- commands- MigrationCommand.php ,并将”fire“方法更改为”handle“ 然后通过以下命令生成相应的数据表...使用Entrust提供的迁移命令生成的关联关系表中默认使用了onDelete('cascade') 以便父级记录删除后移除其对应的关联关系。...如果你由于某种原因不能在数据库中使用级联删除,那么可以在EntrustRole 、EntrustPermission 类以及HasRole trait提供的事件监听器中手动删除关联表中的记录。...不过,由于Laravel事件监听器的局限性,所以暂时无法区分是调用delete() 还是forceDelete() ,基于这个原因,在你删除一个模型之前,必须手动删除所有关联数据(除非你的数据表使用了级联删除...): $role = Role::findOrFail(1); // 获取给定权限 // 正常删除 $role- delete(); // 强制删除 $role- users()- sync([]);

6.1K10

Laravel系列3.2】路由:哪儿打哪儿

路由:哪儿打哪儿 在没有接触到 Laravel 之前,早先的框架基本上都没有这个完整的路由的概念。像是 TP3 、Yii1 版本的时候,都是通过入口文件对参数的解析来加载指定的 控制器 。...如果是传统框架没有加任何判断的情况下,也是可以直接请求到控制器的,只是说我们从 _POST 中无法获取数据而已。.../1/a 或者 /request/1 这两种形式的链接访问的时候,都是可以正常访问的,使用 /get/request/1/1 则无法访问。...edit http://laravel8/temp/delete http://laravel8/temp/insert 就可以把这五个链接都放到 temp 这个资源路径下,一般这种类似的资源也会只使用一个控制器...('/delete', function(){ return '删除'; }); }); 路由与控制器、模型 对于路由操作来说,我们在日常开发中其实很少会在路由文件中写代码,真实的情况其实是路由去指向控制器

11.7K10

两个非常棒的 Laravel 权限管理包推荐

Laratrust 的问题是使用自己的 Laravel 命令替换默认 Laravel 命令,因此无法使用 Gates 或 @can 语法。...还有其它的几个选择,大部分似乎都过时了然后也很久没有维护了。...总而言之,Bouncer 的数据库结构似乎更复杂一些,更难于理解,随之而来的灵活性更大。 可用方法 这两个包确实提供了类似的功能,所以接下来比较一下细节。...当然,这两个包都可以使用默认的 Laravel 命令,如 @can 和 @endcan。 缓存 Spatie 角色和权限数据自动缓存以加快性能。...Spatie 的优点: 文档更好 ( Bouncer’s 的一些方法没有在 README 中被提到) 更容易理解的数据库结构 syncRoles() 方法可以代替删除插入 一些 blade 指令 ——

4K30

Laravel系列4.3】模型Eloquent ORM的使用(一)

对于 Laravel 中标准的 Eloquent 模型类来说,每个表都应该有两个字段,一个是 updated_at ,另一个是 created_at ,分别是两个时间戳字段,用于记录数据的创建时间和修改时间...其实所有的表最好都有这两个字段,而且很多后台管理系统中还需要有 创建人 和 修改人 的记录。它们的目的都是为了数据的安全和记录可追溯。...删除功能直接调用的是静态的 destroy() 方法,它可以接收的参数是主键 id ,而且这个地方我们可以传递多个 id 以及其它不同的写法就能够实现批量删除,大家也可以自行查阅官方文档。...这个参数是可选的,如果不填,它会默认找一个叫做 sex_id 的值,当然,在我们的数据中是没这个字段的,所以我们指定为 sex 。...没错,还是后期静态绑定的作用,这里使用了 $this ,现在这里的对象就是 MTest 了,这一段没毛病吧,完美的后期静态绑定的应用。

8.8K20
领券