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

Laravel 通过迁移文件定义数据表结构

定义迁移 数据表的每次变动(创建、修改、删除)都对应一个迁移文件,这些迁移文件位于 database/migrations 目录下,以日期时间为条件确定执行的先后顺序。...以 Laravel 自带的 users 表迁移文件为例,代码如下所示: 正如你所看到的,这个迁移类包含了 up 方法和 down 方法,分别用于创建 users 表和删除 users 表。...添加索引 对字段设置索引我们已经在 create_users_table 中看到过了: $table->string('email')->unique(); 通过这种调用方式,我们将 email 字段设置为了唯一索引...之间的关联关系,可以通过这种方式来定义外键索引来实现: $table->foreign('user_id')->references('id')->on('users'); 如果你还想进一步指定外键约束(级联删除和更新...'); 注:不推荐使用外键,更不要使用外键约束功能,因为影响数据库性能,而且级联删除有可能造成非常严重的无法挽回的后果。

2.1K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于Kubernetes里边的Finalizers的那些事

    例如,你可以定义一个 Finalizer,在删除目标资源前清理相关资源或基础设施。 你可以通过使用 Finalizers 提醒控制器 在删除目标资源前执行特定的清理任务, 来控制资源的垃圾收集。...当你试图删除该资源时,处理删除请求的 API 服务器会注意到 finalizers 字段中的值, 并进行以下操作: 修改对象,将你开始执行删除的时间添加到 metadata.deletionTimestamp...级联删除策略 级联删除策略可以看成是Finalizers和Owner Reference的联合使用。...级联删除策略有三种,分别是: foreground(前台级联删除):先删子级资源,再删父级资源 background(后台级联删除):先删父级资源,再删子级资源 orphan(孤立删除):忽略Owner...这说明发生的事情是对象被更新了,而不是被删除了。这是因为 Kubernetes 看到该对象包含Finalizers并阻止从 etcd 中删除该对象。

    65510

    Laravel学习记录--数据库迁移

    1.创建迁移文件 php artisan make:migration add_quantity_to_c --table=c//创建迁移文件 对迁移文件进行编辑,插入或删除字段 up()方法...(重启(back->migrating) fresh():删除数据表,再次执行所有迁移文件(5.5)( 删除(drop->migrating)) install() 重置并重新运行所有的migrations...重置前需删除migrations表——重置migrations表 重置的是migratic表而不是迁移文件 force():强制执行最新的迁移文件 php artisan migrate:rollback...,'字段2']) 外键约束 $table->foreign('当前表从表字段')->references('参考表主表字段')->on('主表') ->onDelete('cascade')//级联删除...->update('cascade')//级联更新 默认的外键名 数据表名称_外键字段_foreign 删除外键 dropForeign('外键名') 开启/关闭外键约束 Schema

    1.1K20

    基于 Redis 实现简单限流器及其在路由中间件中的应用

    ,通过限流器可以有效避免短时间内的异常高并发请求导致系统负载过高,从而达到保护系统的目的,另外对于一些日常的业务功能,也可以通过限流器避免垃圾流量,比如用户注册、文章发布、用户评论等,通过限流可以有效阻止垃圾用户的批量注册和发布...限流中间件在 Laravel 中的使用 我们知道,在 Laravel 项目中,可以通过 RateLimiter 门面的 for 方法来定义限流逻辑比将其应用到路由中(详见路由文档),也可以直接在 Laravel...接下来,又是一个 $this->cache->add 调用,这不是 Laravel 底层代码的 bug 哈,而是用于统计当前用户访问次数的另一个键值对,键名和 ThrottleRequests 中间件对象设置的键名一致...function attempts($key) { return $this->cache->get($key, 0); } 则进一步判断限流器对应的键值是否存在,如果存在,则触发访问上限,否则删除用户访问统计键值对...返回响应给用户 回到上一层 handleRequest 方法,如果没有触发访问上限,接下来会调用 next(request) 执行路由处理器代码,返回响应给用户。

    3.2K30

    Laravel 5.0 之 Middleware (Filter-Style)

    你可能还留意到在原本应该是路由过滤器的地方,变成了对 Middleware 的引用。 实际上给 Laravel 应用添加自定义的 Middleware 在以前的版本中就有了。...Chris Fidao 的 HTTP Middleware in Laravel 4.1 对 middleware 做了全面的介绍,包括 middleware 在 Laravel 4.1 版本中的工作机制...还记得之前那个荒谬的“阻止奇数端口请求的 ValidatesWhenResolved 对象”的例子吗?...在每次请求时执行 middleware 下面,我们从让自己的 middleware 在每次请求时都执行开始。...而 "after" middleware 是先调用 $next() 方法让请求被堆栈处理,之后再对它执行操作。 写在最后 如果你还不熟悉 middleware, 你的大脑可能会被它的概念纠缠一会儿。

    2.1K40

    sql server 实验5.2 触发器的建立与使用

    3、 在表或视图上,每个INSERT、UPDATE或DELETE语句只能创建一个INSTEAD OF类型的触发器,无法为有外键约束且指定为级联删除或级联修改的表创建DELETE或UPDATE语句上的INSTEAD...当执行INSERT时,INSERTED表中保存要向表中插入的所有行;当执行DELETE时,DELETED表中保存要从表中删除的所有行;当执行UPDATE时,修改前的行保存在DELETED表中,修改后的行保存在...rollback   end 4、在customer表上创建一触发器,用来实现级联删除。...insert employee values('E0029','陆毅','男','业务','职员','1980-12-2','1950-12-2',6200,'07343120496','上海市') 4、对sale_item...,'E0013',22700.00,'1996-11-10','I000000002') drop trigger unin_sales 6、针对employee表,定义一触发器用来保证实体完整性,阻止用户修改

    2.1K20

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

    所以,软删除的概念,极为重要。 本文我们仍然不厌其烦地讲解软删除的功能。 物理删除 其实就是真实地把数据从数据库条目清除,laravel模型提供了开箱即用的方法。...软删除 在许多情况下,你不会真正想要从数据库中删除记录,而是用一种不再在应用程序中显示它们的方式对其进行注释。这就是所谓的软删除。...Laravel本身支持软删除,只需要进行少量的配置更改,以确保在执行delete或destroy时,模型的记录不会被实际删除。作为一个例子,我们修改Event模型以支持软删除。...: php artisan migrate 执行成功输出内容: Migrating: 2020_10_08_184402_add_soft_delete_to_events Migrated: 2020...如果你在代码内要坚持查询全量数据,也包含软删除了的数据,那么代码这样写: $events = Event::withTrashed()->get(); 写在最后 本文我们有重温了laravel的模型软删除功能

    2.2K00

    -基础面试题总结

    truncate 和不带 where 子句的 delete、以及 drop 都会删除表内的数据,但是 truncate 和 delete 只删除数据不删除表的结构(定义),执行 drop 语句,此表的结构也会删除...为什么不推荐使用外键与级联? 对于外键和级联,阿里巴巴开发手册这样说到: 【强制】不得使用外键与级联,一切外键概念必须在应用层解决。...外键与级联更新适用于单机低并发,不适合分布式、高并发集群; 级联更新是强阻塞,存在数据库更新风暴的风 险; 外键影响数据库的插入速度 为什么不要用外键呢?...READ-COMMITTED(读取已提交): 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。...REPEATABLE-READ(可重复读): 对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。

    66450

    Laravel8的迁移压缩、任务批处理、速率限制优化 | 文末抽奖

    组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...执行 schema:dump 即可: php artisan schema:dump // 转储当前数据库模式并删除所有现有的迁移… php artisan schema:dump --prune...执行完这条命令,Laravel 将会在 database/schema 目录写入一个「schema」文件。...当在未执行任何其他迁移的情况下,你迁移数据库时,Laravel 将会先执行 schema 文件中的 SQL,再执行不包含在 schema 中的剩余迁移。...任务批处理 Laravel 的任务批处理特性让你可以简单地执行批量任务,然后在批量任务执行完成后再执行一些操作。Bus facade 中新增了一个 batch 方法可以用来执行批量任务。

    1.9K21

    【Mysql-13】视图——语法盘点&特性介绍(7k字详解&经典代码样例演示)

    修改视图要加上 or replace;创建视图可加可不加;、 删除 加上if exists:如果视图存在,执行删除操作 2.代码&样例演示 学生数据表略 -- 创建视图 create or replace...from stu_v_1;,查看不到修改后的视图 因此我们加上with cascaded check option 或者with local check option 当插入数据的条件不匹配时候,阻止插入...CASCADED 和LOCAL的区别: 1.演示cascaded【递归检查,检查选项方向继承】 演示cascaded: 创建一个视图v1,无检查选项 ,r如果对其进行增删改操作,他不会检查是否满足条件...(28,"Tom'); //无检查,v2有检查,级联v1有检查,插入失败 2.演示LOCAL【递归检查,检查选项不继承】 演示local: 创建一个视图v1,无检查选项 r如果对其进行增删改操作...< 20 ; insert into stu_v_6 values(14,"Tom"); //无检查,递归到v2,有检查,低轨道v1,无检查,插入成功 五.视图更新的条件 视图更新,必须满足一对一关系

    83510

    Laravel 表单方法伪造与 CSRF 攻击防护

    JavaScript 的 XMLHttpRequest 对象进行 CORS 跨域资源共享时,就是使用 OPTIONS 方法发送嗅探请求,以判断是否有对指定资源的访问权限。...DELETE:请求服务器删除所请求 URI 所标识的资源。DELETE 请求后指定资源会被删除,DELETE 方法也是幂等的。...、OPTIONS),如果路由执行的是「写入」操作(对应请求方式是 POST、PUT、PATCH、DELETE),则需要传入一个隐藏的 Token 字段(_token)以避免[跨站请求伪造攻击](CSRF...避免跨站请求伪造攻击的措施就是对写入操作采用非 GET 方式请求,同时在请求数据中添加校验 Token 字段,Laravel 也是这么做的,这个 Token 值会在渲染表单页面时通过 Session 生成...当然,如果你是在 JavaScript 脚本中执行 HTTP 请求,也可以很方便的传递这个 Token 值执行写入操作,首先需要在 HTML 标签内新增一个 元素来存储 Token

    8.7K40

    composer (一) -- 依赖管理

    通常用来更新依赖包的版本或增加了新的依赖时使用 删除依赖 只需要修改 composer.json 文件的 require 中的包键值对,再进行 composer update即可删除依赖。...命令删除 composer remove packageName # packageName 为要删除的包名 composer.lock 文件 composer.lock 是通过 composer 进行安装或更新依赖后生成的一个文件...,会记录上次操作的记录,如果改动了 composer.json 文件直接安装并不会生效,还会根据composer.lock 文件来安装,所以在第一次执行 composer install 后,如果更改了...就 爆出一个 debug 包的漏洞,所以尽量对包进行区分。.../laravel blog # blog 为项目名,默认创建最新的laravel框架 # 指定版本 composer create-project --prefer-dist laravel/laravel

    1.8K30

    Laravel基础

    一、Laravel核心目录文件介绍 app:程序的核心代码和业务逻辑代码,其中的Http目录是我们业务逻辑的存放点 bootstrap:包含框架启动的和自动加载文件 config:包含所有程序中的配置文件...Builder)提供方便,流畅的接口,用来建立及执行数据库查找语法 使用PDO参数绑定,以保护应用程序免于SQL注入,因此传入的参数不需额外转义特殊字符 基本可以满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行...100, function ($users) { foreach ($users as $user) { // } }); 你可以从 闭包 中返回 false 来阻止进一步的分块的处理...使用模型删除数据 通过主键值删除数据 根据指定条件删除数据 //1....4.2 基础语法与include的使用 模板中输出php变量 {{ $name }} 模板中执行php代码 {{ date('Y-m-D H:i:s', time()) }} 模板中强制输出 @{{

    7.8K30
    领券