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

laravel5.6约束示例

场景 如果现在有两张表,一张表是文章表articles,一张表是分类表categories,其中在文章表中有一个分类字段category_id,现在想在删除分类表的某一分类时,该分类下的所有文章也一起被删除...,那么这时候就可以用到外约束 具体用法如下: 给文章表添加约束 $table- unsignedInteger('category_id')- comment('文章所属分类|select');...foreign('category_id')- references('id')- on('categories')- onDelete('cascade'); 其中需要注意的是分类表categories的主键字段...id与文章表articles字段category_id的数据类型或者是数据长度要保持一致,因为作为主键的id值是从1开始自增的,所以在被其绑定的字段的数据类型就不能使用integer,而要改用...unsignedInteger 以上这篇laravel5.6约束示例就是小编分享给大家的全部内容了,希望能给大家一个参考。

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

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

您可以资源表示在多个数据模型(或根本不在数据库中表示),并且模型完全不受用户限制。最后,您将以适合您的应用程序的方式来决定如何构建资源模型。...有些端点是非常明确,而且,作为一个结果,你的API更加易于使用维护,而不是这样的端点例如GET /get_article?id_article=12POST /delete_article?...迁移模型(Migrations and Models) 在实际编写第一次迁移之前,请确保为此应用程序创建了一个数据库,并将其凭据添加到.env位于项目根目录的文件。...现在让我们回到我们的模型,并将这些属性添加到$fillable字段,以便我们可以在我们Article::createArticle::update模型中使用它们: class Article extends...要开始使用,我们需要调整一些设置来使用内存的SQLite数据库。使用它将使我们的测试快速运行,但是权衡是一些迁移(migration )命令(例如约束)在该特定设置中将无法正常工作。

20.3K20

Laravel 5.2 文档 数据库 —— 起步介绍

目前,Laravel 支持四种类型的数据库系统: MySQL Postgres SQLite SQL Server 配置 Laravel 让连接数据库运行查询都变得非常简单。...readwrite,这两个都对应一个包含单个“host”的数组,读/写连接的其它数据库配置选项都共用 mysql 的主数组配置。...DB门面为每种查询提供了相应方法:select, update, insert, delete, statement。...select一样,改方法原生SQL语句作为第一个参数,绑定作为第二个参数: DB::insert('insert into users (id, name) values (?, ?)'..., ['John']); 运行删除语句 delete方法用于删除数据库已存在的记录,update一样,该语句返回被删除的行数: $deleted = DB::delete('delete from

3.2K71

MySQL约束使用

约束可以确保数据的完整性一致性,防止数据被删除或修改时发生错误。在MySQL约束由FOREIGN KEY关键字REFERENCES子句定义。...如何创建约束在MySQL,创建约束需要以下步骤:第一步:创建主表从表约束通常涉及到两个表,一个主表一个从表。主表包含一个列或一组列,其值将在从表中进行比较。...从表包含列,其值必须与主表的值匹配。在本例,我们创建两个表:一个名为"orders"的主表一个名为"customers"的从表。"...以下是如何约束添加到"orders"表的"customer_id"列的示例:ALTER TABLE ordersADD CONSTRAINT fk_orders_customersFOREIGN...FOREIGN KEY子句用于指定要添加约束的列,REFERENCES子句用于指定关联表列。如何使用约束一旦约束被创建,就可以使用它来确保数据的完整性一致性。

4K30

laravel-nestedset:多级无限分类正确姿势

laravel-nestedset是一个关系型数据库遍历树的larvel4-5的插件包 目录: Nested Sets Model简介 安装要求 安装 开始使用 迁移文件 插入节点 获取节点 删除节点...嵌套集合模型 安装要求 PHP>=5.4 laravel>=4.1 v4.3版本以后支持Laravel-5.5 v4版本支持Laravel-5.2、5.3、5.4 v3版本支持Laravel-5.1 v2...*在下面的例子, $parent 为已存在的节点 添加到父节点的末端的方法包括: // #1 使用延迟插入 $node->appendToNode($parent)->save(); // #2 使用父节点...但使用create静态方法时,它将检查数组是否包含children,如果有的话,递归创建更多的节点。...$delete 代表是否删除数据库已存在的但是$data不存在的数据,默认为不删除。

3.4K20

3分钟短文:书接上回,Laravel数据库迁移的那些个小技巧

引言 使用laravel的数据库迁移功能进行表的创建,迁移回滚之后,我们继续说说在设计 表结构的更改之后的处理。以及如何为数据库填充一些伪数据作为测试。...[图片] 数据约束 上一章说到数据库迁移回滚,可以手动控制回滚到哪一批次的迁移位置。...然后使用迁移指令 php artisan migrate 就可以应用这些改变了。 很多时候,并不是说我们创建了表,并且指定了字段名,字段数据类型就算完事儿了。...我们需要空与非空约束,默认值约束,主键约束约束等等数据库所具有的特性, 这才是关系型数据库的魅力。...的迁移指令也允许我们指定某个追加的字段位于某个列之后: $table->boolean('enabled')->after('name'); 迁移状态 查看当前数据库的迁移状态,会让我们查看创建的迁移文件哪些被应用了

1.7K30

Python Web - Flask笔记6

ORM关系以及一对多: mysql级别的,还不够ORM,必须拿到一个表的,然后通过这个再去另外一张表查找,这样太麻烦了。...ORM层面删除数据注意事项 ORM代码删除数据时会无视数据表之间的约束,直接删除数据。然后的数据设置为NULL。就像约束SET NULL一样。...ORM层面删除数据,会无视mysql级别的约束。直接会将对应的数据删除,然后将从表的那个设置为NULL。如果想要避免这种行为,应该将从表的nullable=False。...这种行为就是save-update属性影响的。 delete:表示当删除某一个模型的数据的时候,是否也删掉使用relationship和他关联的数据。...这个操作只是从session移除,并不会真正的从数据库删除。 all:是对save-update, merge, refresh-expire, expunge, delete几种的缩写。

1.9K10

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

Laravel 自带的 users 表迁移文件为例,代码如下所示: 正如你所看到的,这个迁移类包含了 up 方法 down 方法,分别用于创建 users 表删除 users 表。...修改表字段,接下来我们要讨论如何对表字段设置索引。...在迁移,如果我们想建立文章表的 user_id 字段与用户表的 id 之间的关联关系,可以通过这种方式来定义索引来实现: $table->foreign('user_id')->references...('id')->on('users'); 如果你还想进一步指定约束(级联删除更新,比如我们删除了 users 表的某个 id 对应记录,那么其在文章表对应 user_id 的所有文章会被删除...'); 注:不推荐使用,更不要使用约束功能,因为影响数据库性能,而且级联删除有可能造成非常严重的无法挽回的后果。

2.1K21

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

laravel 数据库迁移 数据迁移文件存放在database/migrations 特点:可进行版本回退,便于团队开发 通过数据迁移文件创建表 1 创建数据库 配置.env文件选择数据库 DB_CONNECTION...;//varchar() $tanle->float('price');//dounble(); $tanble->timestamps();//更新时间/创建时间 注意:在生成的过程如果报错长度不够...change() 重命名字段 $table->renameColumn('from','to') 删除字段 dropCloumn('字段名') dropCloumn(['字段名','字段2']) 约束...$table->foreign('当前表从表字段')->references('参考表主表字段')->on('主表') ->onDelete('cascade')//级联删除 ->update(...'cascade')//级联更新 默认的键名 数据表名称_字段_foreign 删除外 dropForeign('键名') 开启/关闭约束 Schema::enableForeignKeyConstraints

1K20

Sentry 开发者贡献指南 - 数据库迁移

目录 命令 您的数据库升级到最新 您的数据库移动到特定的迁移迁移生成 SQL 生成迁移 迁移合并到 master 指南 过滤器 索引 删除列/表 列 表 重命名表 添加列 向列添加 NOT...在这种情况下,首先删除其他表列,然后返回到此步骤。 通过在列上设置 db_constraint=False,删除此表到其他表的任何数据库级约束。...部署 从 sentry 代码库删除模型所有引用。确保迁移状态标记为已删除。 部署。 创建一个删除表的迁移。...接下来,我们需要删除 db 级约束。... 创建大多没问题,但是对于像 Project、Group 这样的大/繁忙的表,由于获取锁的困难,它可能会导致问题。您仍然可以创建 Django 级别的,而无需创建数据库约束

3.6K20

SQL Server 数据库学习「建议收藏」

(5)创建检查约束,检查约束可以把输入的数据限制在指定范围。 设计——选择一列——右击 check约束 (6)创建是建立两个表数据之间连接的一列或多列。...通过保存表主键值的一列或多列添加到另一个表,可以创建两个表之间的连接。这个列为第二个表的。...左链接: 右连接: 完全连接:返回两个表中所有匹配行不匹配行 3.3.2 insert 插入语句 3.3.3 update语句修改指定的数据 3.3.4 delete 语句删除指定数据...update,insert,delete等sql语句修改表的数据,而对视图只能进行select操作。...但是也存在可更新的视图,对于这类视图的update,insertdelete等操作最终会作用于与其相关的表数据。因此,表是数据库数据存储的基础,而视图只是为了满足某种查询要求而建立的一个对象。

1.6K10

MySQL扩展

语法 -- drop index 约束名 on 表名 drop index uk_emp_name_nick on employees_tem 4.3 约束 delete时的级联删除级联置空 4.3.1...,删除部门表的数据,自动所有关联表数据,一并删除 delete from departments_temp1 where dept_id = 100; -- 再次查询数据: select...,删除部门表的数据,自动所有关联表数据,一并置空 delete from departments_temp2 where dept_id = 200; select * from employees_temp5...,更新部门表的数据,自动所有关联表数据,一并更新 update departments_temp1_2 set dept_id = 111 where dept_id = 100; --...,更新部门表的数据,自动所有关联表数据,一并置空 update departments_temp2_2 set dept_id = 111 where dept_id = 100; --

1.9K30

3分钟短文 | Laravel模型关联删除表记录,用观察者还是事件钩子

本文就来说说 Laravel ORM 操作的事件钩子。 学习时间 如果想要实现上一节所说的需求,代码写起来可能是这样的。 $user->delete(); 当该事件发生时,我们接着执行关联的删除。...$this->photo()->delete(); 如果程序每个地方逻辑上进行了删除操作,岂不是都要手动这么重复写,这些重复代码真的是无用功。...MySQL提供了约束,并且可以定义触发器用于批次动作处理。...那么使用 Laravel migrations 时,创建photo表的关联事件: $table->foreign('user_id')->references('id')->on('users')-...写在最后 本文通过3种方式,实现了Laravel关联删除表记录的功能。

1.9K10

Mysql约束

是用来实现参照完整性的,不同的约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。...如果父表试图UPDATE或者DELETE任何子表存在或匹配的键值,最终动作取决于约束定义的ON UPDATEON DELETE选项。...CASCADE: 从父表删除或更新对应的行,同时自动的删除或更新自表匹配的行。ON DELETE CANSCADEON UPDATE CANSCADE都被InnoDB所支持。 2....SET NULL: 从父表删除或更新对应的行,同时子表列设为空。注意,这些在外列没有被设为NOT NULL时才有效。...前一种情况,在外定义,我们使用ON UPDATE CASCADE ON DELETE RESTRICT; 后一种情况,可以使用ON UPDATE CASCADE ON DELETE CASCADE

5.8K81

Laravel系列4.2】查询构造器

其实,查询构造器就相当于我们原始 SQL 的操作进行了一次封装而已。而且,在模型,其实内部调用的也是这个 查询构造器 。也就是说,查询构造器是介于 模型 原始语句 操作中间的一层。...最后,我们还有一个获取单个数据的方法 find() ,它 delete() 很类似,只需要一个主键 ID 就可以了。...一般的连表查询,我们只需要一个相对应即可,但是在我的实际业务开发,还会有遇到多个相对应的情况,这个才是我们接下来说的重点问题。...`sex` }); 代码第一段的连表查询就是最普通的一个的查询,如果要实现多个连表的话,就需要使用第二种方法。...它是 join() 或者 leftJoin() 这些 join 相关的函数都支持的一种形式,把第二个参数变成一个回调参数,然后在里面继续使用 on() 方法来进行多个条件的连接。

16.8K10

3分钟短文:Laravel查询构造器,告别手写SQL的艰苦岁月

引言 鉴于上一章标题引起一些开发同学的巨大兴趣,本文我们接着此种行文方式继续我们的“Laravel宇宙”系列文章。...我们在前一些章节,相继使用迁移创建了数据库结构,使用seeder为数据库填充了假数据,现在我们要对数据进行操作了。 哪些操作?增删改查!...,['sally', 'sally@me.com']); 这一条是创建新的数据条目,还有更新数据: $countUpdated = DB::update('update contacts set status...,['valie', $id]); 按照条件删除条目: $countDeleted = DB::delete('delete from contacts where archived = ?'...写在最后 本文轻描淡写地讲解了laravel的查询构造器,讲了一个比较复杂的OR查询,因为使用闭包组装WHERE约束条件,所以会有些难以理解, 不过对比打印生成的SQL语句后,大家应该会豁然开朗!

1.7K11
领券