首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

引言 使用laravel的数据库迁移功能进行表的创建,和迁移回滚之后,我们继续说说设计中 表结构的更改之后的处理。以及如何为数据库填充一些伪数据作为测试。...很多时候,并不是说我们创建了表,并且指定了字段名,和字段数据类型就算完事儿了。 我们需要约束,默认值约束,主键约束,外键约束等等数据库所具有的特性, 这才是关系型数据库的魅力。...: $table->tinyInteger('age')->unsigned()->default(0); 增删字段 使用迁移功能增删数据库表的字段,与之前讲的创建迁移文件相同, 首先创建一个迁移文件,...,或者回滚的时候,删除一个字段,代码如下图: [pic] 完成后命令行执行迁移指令: php artisan migrate 输出结果如下: Migrating: 2020_09_28_213116...,所以laravel所组装的SQL就默认是最后一个字段之后。

1.7K30

为你的 Laravel 验证器加上多验证场景的实现

前言 我们使用 laravel 框架的验证器,有的时候需要对表单等进行数据验证,当然 laravel 也为我们提供了 Illuminate\Http\Request 对象提供的 validate...$this- getScene($scene)) { return false; } //如果场景需要验证的规则不为 if (!...$scene = $this- scene[$scene]; if (is_string($scene)) { $scene = explode(',', $scene); } //将场景需要验证的字段填充入...场景验证 我们需要提前验证类中定义好验证场景 如下,支持使用字符串或数组,使用字符串,要验证的字段需用 , 隔开 //自定义场景 protected $scene = [ 'add'= "title...scene('add')- check($request_data)) { var_dump($ArticleValidate- getError()); } } 控制器内验证 当然我们也允许你不创建验证类来验证数据

2.8K10

通过填充器快速填充 Laravel 测试数据

Laravel 框架中,如果想要快速填充测试数据到数据库,可以借助框架提供的填充器功能,通过填充器,我们可以非常方便地为不同数据表快速填充测试数据。...这就是 Laravel 自带的一个填充器示例文件,该填充器类提供了一个 run 方法,当我们运行填充命令,就会调用该方法执行数据库填充。...填充器的运行 Laravel 提供了两种方式来运行填充器:一种是独立的填充命令,另一种是在运行迁移命令通过指定标识选项创建数据表填充。...创建模型工厂 模型工厂位于 database/factories 目录下,Laravel 自带了一个用于填充 User 模型的模型工厂 UserFactory.php: <?...,Faker 类库提供了丰富的字段规则帮助我们生成伪造字段值,这些规则可以官方文档中查看,这里,我们使用 调用模型工厂 调用这些模型工厂的时候,需要借助 Laravel 提供的全局辅助函数 factory

10K20

laravel与thinkphp之间的区别与优缺点

例如对用户名的验证:我们可以使用validate方法里'username'=>'required'(不能为)|alpha_dash(必须数字字母下划线)|between:6,18(多少位数之间);还内置了例如...7、加密方式 TP框架中,我们对用户名密码进行加密使用md5();的方式进行加密。...但是Laravel里也可以直接使用:php artisan make:model Models/GoodsModel -m 完成模型的创建和建表结构的创建(/database/migrations)。...8.2、向goods数据表填充数据,要注意数据的类型是严格区分的,并且一定要加。添加完后使用php artisan migrate命令完成表的创建。...无须担心,从github中pull下项目后在数据表里直接修改,只需要用: php artisan migrate:refresh 9、ORM 介绍建表已经使用了创建模型的命令: php artisan

5.5K20

Laravel和Thinkphp有什么区别,哪个框架好用

例如对用户名的验证:我们可以使用validate方法里’username’=>’required'(不能为)|alpha_dash(必须数字字母下划线)|between:6,18(多少位数之间);还内置了例如...7、加密方式 TP框架中,我们对用户名密码进行加密使用md5();的方式进行加密。...但是Laravel里也可以直接使用:php artisan make:model Models/GoodsModel -m 完成模型的创建和建表结构的创建(/database/migrations)。...8.2、向goods数据表填充数据,要注意数据的类型是严格区分的,并且一定要加。添加完后使用php artisan migrate命令完成表的创建。...无须担心,从github中pull下项目后在数据表里直接修改,只需要用: php artisan migrate:refresh 9、ORM 介绍建表已经使用了创建模型的命令: php artisan

5.9K20

Laravel基础二之Migrations和验证

一、Migration创建数据表与Seeder数据库填充数据 数据库迁移就像是数据库的版本控制,可以让你的团队轻松修改并共享应用程序的数据库结构 1.1 创建迁移 php artisan make:...新的迁移文件会被放置 database/migrations 目录中。...每个迁移文件的名称都包含了一个时间戳,以便让 Laravel 确认迁移的顺序。 --table 和 --create 选项可用来指定数据表的名称,或是该迁移被执行时是否将创建的新数据表。...up 方法可为数据库添加新的数据表、字段或索引,而 down 方法则是 up 方法的逆操作。可以在这两个方法中使用 Laravel 数据库结构生成器来创建以及修改数据表。...数据表、字段、索引:https://laravel-china.org/doc... 1.3 运行迁移 运行所有未完成的迁移:php artisan migrate 1.4 回滚迁移 回滚最后一次迁移,

1.6K30

通过 Laravel 查询构建器实现复杂的查询语句

你一定有过这样的经历,从数据库获取指定查询结果后,以主键 ID 值为键,以某个字段值为值构建关联数组,以前,你可能不得不遍历查询结果构建数组才能解决这样的问题, Laravel 中,我们只需查询构建器上调用...使用该方法,需要注意传递给 whereIn 的第二个参数不能是数组,否则会报错。 同样,与之相对的,还有一个 whereNotIn 方法,表示与 whereIn 相反的查询条件。...null查询 NULL 查询就是判断某个字段是否为的查询,Laravel 查询构建器为我们提供了 whereNull 方法用于实现该查询: DB::table('users')->whereNull(...注:写 SQL 语句,OUTER 可以省略。...创建填充 posts 表 为了方便下面的演示,我们新建一个 posts 数据表,首先创建对应迁移文件: php artisan make:migration create_posts_table --

29.9K20

3分钟短文:Laravel模型写操作很简单,大多数人容易用错

引言 前几期我们通过laravel模型的读操作方法,实现了很多花样繁多的条件筛选查询, 可以说足以应对大多数的场景。 ? 本期说说写操作的那些事,包括创建,修改,这些直接操作数据库数据的操作方法。...contact = new Contact; $contact->name = 'Tom Hanks'; $contact->email = 'tom@hanks.com'; $contact->save(); 创建一个对象...但是,save方法太宽泛了,创建数据,用于写入数据库;更新数据,同样用于写操作。有点泛泛而谈的意思。框架贴心地准备了专门用于创建条目的 create 方法。...或者使用相反的方式,字段太多,不能一一列举, 就使用保护字段,指定哪些不可填充: protected $guarded = ['id', 'created_at', 'updated_at', 'owner_id...会根据 email 字段的值查找条目,如果没有则创建。 写在最后 本文主要讲解了通过模型创建数据条目,或更新条目。其中最关键的还是 模型字段的属性保护,指定可以写入的数据,并使用过滤器进行筛选。

51020

Laravel 6.14.0 版本发布,支持响应发送后执行任务

Laravel 开发团队本周发布了 v6.14.0 版本,新增了 dispatchAfterResponse() 方法、调度器(dispatcher)中支持宏方法、以及支持 NoMigrations...有人可能会说同样的事情可以通过队列任务来完成,确实如此,不过对于一些简单的、耗时的、需要立即执行的任务,通过这种方式处理更简单一些。...Illuminate\Events\Dispatcher 中使用 Macroable trait 新增 NoPendingMigrations 事件 问题修复 使用当前 DB 实例创建 Doctrine...连接 vendor:publish 命令中发布标签移除重复的输出 修复 pluck 方法参数包含空格的问题 修复事件调度器中通配符缓存的问题 修复 RedisStore 中的无限值问题 修复 SqlServer...) 中没有合并方法和属性中的中间件 从 Illuminate\Console\Command 中分离 specifyParameter() 方法到 HasParameters trait 确保将数据库字段更改为

1.9K20

Laravel5.2之Seeder填充数据小技巧

说明:本文主要聊一聊Laravel测试数据填充器Seeder的小技巧,同时介绍下Laravel开发插件三件套,这三个插件挺好用哦。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。...备注:设计个人博客软件,总会碰到有分类Category、博客Post、给博客贴的标签Tag、博客内容的评论Comment。...设计字段 按照上文提到的Category、Post、Comment和Tag之间的关系创建迁移Migration和模型Model,项目根目录输入: php artisan make:model Category...好,聊到seeder测试数据填充之前,看下开发插件三件套能干些啥,下文中命令可在项目根目录输入php artisan指令列表中查看。...,控制器里输入方法时会自动补全auto complete字段属性的方法: 2、mpociot/laravel-test-factory-helper 输入指令php artisan test-factory-helper

3.5K42

MyBatis Plus 自动填充功能 – MetaObjectHandler

MyBatis Plus 提供了自动填充(MetaObjectHandler)的功能,可以插入和更新操作自动填充指定的字段,例如创建时间、更新时间、创建人、更新人等。... MyBatis Plus 中,要实现自动填充功能,通常需要创建一个实现了 MetaObjectHandler 接口的类,并在该类中重写相应的方法来实现字段填充逻辑。...常用的方法包括 insertFill 和 updateFill,分别用于插入和更新操作填充字段的值。... insertFill 方法中,我们为 createTime 和 createUser 字段如果为的时候填充了默认值, updateFill 方法中,为 updateTime 和 updateUser...这种自动填充功能可以大大简化开发工作,尤其是需要对多个表进行相同字段填充的情况下,能够提高开发效率并减少出错的可能性。

1.2K10

分享8个Laravel模型时间戳使用技巧小结

默认情况下,Laravel Eloquent 模型默认数据表有 created_at 和 updated_at 两个字段。当然,我们可以做很多自定义配置,实现很多有趣的功能。下面举例说明。 1....禁用时间戳 如果数据表没有这两个字段,保存数据 Model::create($arrayOfValues); —— 会看到 SQL error。...Laravel 自动填充 created_at / updated_at 的时候,无法找到这两个字段。...这个属性确定日期在数据库中的存储格式,以及序列化成数组或 JSON 的格式: class Flight extends Model { /** * 日期时间的存储格式 * *...并且 Laravel 不会尝试自动填充 created_at/updated_at 但是如果你想自动保存时间戳,您需要在迁移文件中添加 created_at/updated_at,然后模型的关联中加上

3.7K31

【MySQL数据库】数据库的约束

MySQL中主要有六种约束,分别是:主键约束(primary key),约束(not null),自增长约束(auto_increment),默认约束(default) ,零填充约束(zerofill...主键约束(primary key) 主键约束相当于唯一约束+约束。每个表只能有一个唯一索引。关键字primary key。...当主键创建,系统默认会在所在列和列组合上建立唯一索引--增加单列主键alter table add primary key(字段列表);--删除主键alter table drop...约束(not null) 顾名思义:约束(not null)就是指其字段的值不能为。...column default null;零填充约束(zerofill) 插入数据,当该字段的值的长度小于定义的长度,会在该值的前面补上相应的0。

5.6K40

Laravel框架关键技术解析

、类和常量,根据当前导入的命名空间进行转换 命名空间内部,所有的没有根据导入规则转换的限定名称和完全限定名称均会在其前面加上当前命名空间名称 命名空间内部,对限定名称和限定 名称的函数进行调用时...,先在当前命名空间下解析,如果查找不到再在全局空间下查找 命名空间内部对限定名称和完全限定名称的类进行调用时,只会在当前命名空间下解析 2.文件包含 require产生错误,include出警告...$deferredServices数组属性中,使用服务容器进行解析,如果发现这个服务延时服务数组中,则会注册 D.响应的发送与程序终止 八、服务容器与服务提供者 A.服务容器 1.Laravel中服务容器相当于大脑...Location重定向字段Laravel中的RedirectResponse类是Symfony框架的RedirectResponse类的基础上加入了session一次性数据、自定义首部信息等功能 https...://github.com/zhangyue0503/laravel5.4cn 十、数据库及操作 A.数据库迁移与填充 1.Laravel的数据库迁移其实是定义了一个统一的接口来实现数据库架构的创建和维护

11.9K20

Laravel 7 新特性-路由的趟坑之路(自定义键名以及作用域)

Laravel 7 开始新增了一些新特性,今天我们来讲解下 路由绑定的新用法,自定义键名(slug)以及作用域(范围限定) 首先我们 安装最新版本的 Laravel ,并且创建两张数据表。...Post 表字段,修改 database\migrations\日期_create_posts_table.php 文件 <?...php artisan db:seed ok,以上准备工作做完,(其实你大可不必这样,你可以任意创建 User、Post 数据表)我们正式开始今天的话题。...当然我们以前的版本可以更改这个,我们需要在 模型中重写一个方法 getRouteKeyName 接下来我们看下 Laravel 7 以前是怎么实现的 首先。...那么我们查找 id 为 2 的数据,可以看到 他的 user_id 并不是 2 了,理论上我们不应该查到才是。

2.4K10

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

之前 通过 Laravel 创建一个 Vue 单页应用(二) 中完成了 UsersIndex 组件异步地从 API 中加载用户。...创建控制器和 API 资源之前, 让我们首先设置一个数据库并且进行数据填充,以便为我们的 SPA 提供一些测试数据。...用户数据填充 我们使用 make:seeder 命令来创建一个用户填充: php artisan make:seeder UsersTableSeeder UsersTableSeeder 非常简单。...但是,前者可以组件中使用 this,因此样式上会略有不同: // 当路由更改并且组件已经渲染, // 逻辑会略有不同。...当下一页或上一页第一页和最后一页的边界处为,将禁用这些按钮。 代码中可能有一些冗余,但是此组件说明 vue-router了进入路由之前用于获取数据的方法!

5.1K10
领券