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

Laravel给数据库造假竟成工具链

引言 上一章我们了解了使用laravel迁移功能创建数据库表,把DBA的工作挪到开发端,这样把岗位都省出来了。 但是只有光秃秃的数据库表,有个壳子没有数据确实没啥用。...本文为大家讲讲laravel怎么给数据库造假数据,堂而皇之地假装生产。 本文使用的构建方式都是写脏数据,乱数据,无实质意义的数据,只对应用程序和数据库有用,别的嘛用没有!...为了把种子文件引入使用,在 database/seeds/DatabaseSeeder.php 文件内添加如下代码: public function run() { $this->call(ContactsTableSeeder...类不类,方法不方法,函数不函数的!没错,就是一个代码片段,laravel约定的东西, 你这么写,在执行数据填充和测试的时候,它就起作用!就这么神奇。 那如何控制填充条数呢?...::class, 500)->create(); 怎么理解呢,就是我们创建了模型工厂类 ContactFactory,然后使用 factory 快捷函数进行实例化调用,并使用工厂类内的数据, 对每个模型发起

1.1K20

Laravel给数据库造假竟成工具链

引言 上一章我们了解了使用laravel迁移功能创建数据库表,把DBA的工作挪到开发端,这样把岗位都省出来了。 但是只有光秃秃的数据库表,有个壳子没有数据确实没啥用。...本文为大家讲讲laravel怎么给数据库造假数据,堂而皇之地假装生产。 本文使用的构建方式都是写脏数据,乱数据,无实质意义的数据,只对应用程序和数据库有用,别的嘛用没有!...为了把种子文件引入使用,在 database/seeds/DatabaseSeeder.php 文件内添加如下代码: public function run() { $this->call(ContactsTableSeeder...类不类,方法不方法,函数不函数的!没错,就是一个代码片段,laravel约定的东西, 你这么写,在执行数据填充和测试的时候,它就起作用!就这么神奇。 那如何控制填充条数呢?...::class, 500)->create(); 怎么理解呢,就是我们创建了模型工厂类 ContactFactory,然后使用 factory 快捷函数进行实例化调用,并使用工厂类内的数据, 对每个模型发起

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

    Laravel 迁移文件migrations 和 数据填充seeders

    为了防止您对生产数据库运行这些命令,在执行命令之前,系统将提示您进行确认。...若要强制命令在没有提示的情况下运行,请使用以下标志: php artisan migrate --force #要回滚最新的迁移操作,您可以使用rollback Artisan 命令。...例如,下面的命令将回滚并重新迁移最近的五次迁移: php artisan migrate:refresh --step=5 #migrate:fresh命令将删除数据库中的所有表,然后执行migrate...为了防止对生产数据库运行播种命令,在生产环境中执行播种命令之前,将提示您进行确认。...要强制种子程序在没有提示的情况下运行,使用——force标志 php artisan db:seed --force cat database/seeders/DatabaseSeeder.php <?

    1.5K30

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

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

    10.1K20

    laravel 学习之路 数据库操作 数据插入与数据填充

    是优雅的框架这么做跟 laravel 的优雅不符,所有 laravel 必定准备了其他方法,下面学下的填充就是向数据库批量添加数据的,简单概述下就是 数据库迁移+数据填充 = SQL 我们先来看看官网的介绍...可以看到里面有个 run 方法这个方法会在执行 db:seed 这个 Artisan 命令 时被调用,利用 DB 的方法写上要填充的内容,你也可以用 查询构造器 或 Eloquent 模型工厂 来手动插入数据...,我发现 database/seeds 目录下还有个 DatabaseSeeder.php 文件,他默认就存在不是我创建的打开它里面也有个 run 方法并且里面有一行代码注释掉了 // $this->call...(UsersTableSeeder::class); 翻看了 官方文档 才知道 db:seed 命令会去运行 DatabaseSeeder 类,在这个类可以用来调用其它 Seed 类 也就是我们需要仿照注释的示例在...这个命令可以用来重建数据库 php artisan migrate:refresh --seed 另外在生产环境中强制使用一些填充操作可能会导致原有数据的更新或丢失。

    2.6K20

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

    简化了从数据库构建一个真实的后端 API,选择通过 Laravel 的 factory() 方法在 API 返回中模拟假数据。...如果你是 Laravel 的新手,你可以查阅在 数据库入门 上的大量文档。...它实际上是这样的: { params: { page: 1 } } 下面是我们的 beforeRouteEnter 守卫如何使用 getUsers 函数获取异步数据,然后在组件上调用...getUsers() 中这样调用: callback(null, response.data); beforeRouteUpdate 当组件已经处于渲染状态,并且路由更改时,将调用 beforeRouteUpdate...当下一页或上一页在第一页和最后一页的边界处为空时,将禁用这些按钮。 代码中可能有一些冗余,但是此组件说明 vue-router了在进入路由之前用于获取数据的方法!

    5.2K10

    Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】

    用开发者工具查看,这个请求的状态码是 500,为什么? 因为 `learnlaravel5/storage` 目录没有 777 权限。...Laravel 已经为我们准备好了 Auth 部分的 migration,运行以下命令执行数据库迁移操作: php artisan migrate 得到的结果如下: 如果你运行命令报错,请检查数据库连接设置...这里需要强调一下,用命令行的方式创建文件,和自己手动创建文件没有任何区别,你也可以尝试自己创建这两个 Model 类。 Model 即为 MVC 中的 M,翻译为 模型,负责跟数据库交互。...在 Eloquent 中,数据库中每一张表对应着一个 Model 类(当然也可以对应多个)。...$i, 'user_id' => 1, ]); } } } 然后修改同一级目录下的 `DatabaseSeeder.php`中: // $this->call(

    3.5K20

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

    说明:本文主要聊一聊Laravel测试数据填充器Seeder的小技巧,同时介绍下Laravel开发插件三件套,这三个插件挺好用哦。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。...备注:在设计个人博客软件时,总会碰到有分类Category、博客Post、给博客贴的标签Tag、博客内容的评论Comment。...mpociot/laravel-test-factory-helper --dev 然后在config/app.php文件中填上: /** *Develop Plugin...,表的关系如下: Seeder填充测试数据 好,在聊到seeder测试数据填充之前,看下开发插件三件套能干些啥,下文中命令可在项目根目录输入php artisan指令列表中查看。...先在DatabaseSeeder.php文件中填上这次要填充的Seeder: public function run() { // $this->call(UsersTableSeeder

    3.6K42

    30分钟用Laravel实现一个博客

    你就处于tinker模式下了,此时你可以输入php代码,或者调用laravel提供的全局函数,甚至引用一个类,调用它的静态方法或者实例化它。...学习使用 seeds 的创建(Seeder)、编辑其他Seeder(在 run() 中调用 factory() )、编辑DatabaseSeed(在 run() 中调用 其他 Seeder)。...总结 => 路由定义在浏览器中访问某控制器中某方法的地址,控制器完成一系列操作:如果需要操作数据库,需要调用模型,每一个模型对应一张表。...js 函数,我们在 .....当然,我们还有 Request 请求认证 Policy 策略控制等等一些列的特性没有学习,我们也只使用了一次composer,其实在开发Laravel时,我们还可以使用非常多的,支持Laravel的,完善的轮子可以利用

    7.4K00

    为什么 Laravel 这么优秀?

    Make Model # 我们的第一步是根据 Laravel 提供的 Artisan 命令生成对应的 Model;在实际的开发中我们通常会提供额外的参数以便生成模型的时候一起生成额外的模版文件,如数据库迁移文件...:在 Laravel 中,辅助函数通常会放在一个名叫 Support 的文件下面的;而这在其他框架中通常会被叫做 utils。...在我看来如果单比命名,support 在这里要优雅得多;并且 Laravel 的源代码中到处都充满这这种匠人式的设计;不管是函数的命名、注释、甚至是什么时候该空行,都有着自己的设计思考在里面。...container 中设置不同的值;如 CacheServiceProvider 会向容器中注册 Cache 对象,后续在使用 Cache::get 时就使用的是这里注册的 Cache 对象,在注册阶段不应该向容器中获取值...但 Symfony 的推广没有 Laravel 那么好运,Symfony 发布到现在已经 12 年了,仍然处于不温不火的地位(国内看的话),我想大概是没有一个像 Taylor Otwell 一样即会写代码还会营销的

    26710

    Laraval IDE 自动补全插件 laravel-ide-helper

    一、背景 我们在实际的开发场景中,不少人或许已经碰到了使用PHPStorm不能自动补全门面(Facade)的问题,或者其他类通过容器调用时无法补全或者跳转。...有些类需要数据库连接,如果没有相应的数据库连接,某些门面可能无法包含进来。 你可以选择要包含的辅助函数文件,默认该选项并未开启,但是你可以通过--helpers选项覆盖默认配置。...默认会引入Illuminate/Support/helpers.php,当然你还可以在配置文件中添加自定义的辅助函数文件。...注意:为模型生成字段信息必须在数据库中存在相应的数据表,不要生成 migration 还没运行 migrate 的时候就生成注释,这样是得不到字段信息的。 3.3 自动为链式操作注释 这是什么意思呢?...ide-helper:generate,在调用像 ->unique() 这样的链式操作的时候也无法实现代码提示,这时候需要将配置文件「如果导出的话」'include_fluent' => false

    3.7K40

    记一次 PHP 并发性能调优实战 -- 性能提升 104%

    当一个进程处于 Sleep 状态的时候, 任然占用了不少 CPU, 先不要怀疑是不是进程的问题, 我们看一下 Ttop 命令的 man page....由于 top 命令收集信息的时候, 可能 linux 把这个进程强制调度了 ( 比如用于 top 收集进程信息 ), 所以在这一瞬间(屏幕刷新的这一瞬间)某些 php-fpm 进程处于 sleep 状态...结合 vmstat 中的命令, 我们可以确定造成 qps 不高的原因之一是过多的进程争抢 CPU 导致的, 我们现在还不能确定具体是什么, 所以还需要进一步的排查. strace strace 可以查看系统调用...果然, 发现大量的 stat 系统调用, 我们猜想, 是 opcache 在检查文件是否过期导致的....通过修改配置项, 达到了 46% 的性能提升 最后再通过 perf, 查看函数调用栈, 分析得到, 可能是大量的与 redis 的 TCP 连接带来不必要的资源消耗.

    2.4K32

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

    引言 我们不止一次在系列文章中讲到模型的“软删除”功能,因为现实场景中为了保证数据可追溯,我们几乎不会对数据库进行物理删除。删除数据有可能会造成数据一致性的破坏,进而导致业务逻辑无法跑通。...所以,软删除的概念,极为重要。 本文我们仍然不厌其烦地讲解软删除的功能。 物理删除 其实就是真实地把数据从数据库条目清除,laravel模型提供了开箱即用的方法。...软删除 在许多情况下,你不会真正想要从数据库中删除记录,而是用一种不再在应用程序中显示它们的方式对其进行注释。这就是所谓的软删除。...Laravel本身支持软删除,只需要进行少量的配置更改,以确保在执行delete或destroy时,模型的记录不会被实际删除。作为一个例子,我们修改Event模型以支持软删除。...如果你在代码内要坚持查询全量数据,也包含软删除了的数据,那么代码这样写: $events = Event::withTrashed()->get(); 写在最后 本文我们有重温了laravel的模型软删除功能

    2.2K00

    Akka 指南 之「集群的使用方法」

    你有多个彼此独立地构建和部署的服务,但是它们之间的紧密耦合使得这非常危险,例如共享集群、共享代码和服务 API 调用的依赖项,或者共享数据库模式。...通常情况下,这是自动处理的,但在此过程中,如果出现网络故障,可能仍然需要将节点的状态设置为Down,以便完成删除。...= 2 } 可以在registerOnMemberUp回调中启动 Actor,当当前成员状态更改为Up时,将调用该回调,例如集群至少具有已定义的成员数。...如何清理 Removed 状态的成员 你可以在registerOnMemberRemoved回调中进行一些清理,当当前成员状态更改为Removed或群集已关闭时,将调用该回调。...注释:在已关闭的群集上注册OnMemberRemoved回调,该回调将立即在调用方线程上调用,否则稍后当当前成员状态更改为Removed时将调用该回调。

    4.8K60

    实战:应用对持久数据访问| 从开发角度看应用架构9

    大魏这个类,在被生成对象时,会从数据库表中读数据,然后可能会对数据修改,修改的这些数据,会存到持久性上下文中(运行在内存中),在默写情况下,会被存回数据库表中(例如提交)。...最后,类必须至少有一个没有参数的构造函数,尽管类仍然可以有其他构造函数接受参数。...应用程序调用实体管理器的持久性,查找或合并方法后,实体实例处于受管状态。 Removed State:持久实体可以通过多种方式从数据库表中删除。...当提交事务或调用实体管理器的remove方法时,可以从数据库表中删除一个托管实体实例。 一个实体然后处于移除状态。 Detached State: 实体具有持久性实体标识,但不与持久性上下文相关联。...merge()方法为处于新状态或瞬态状态的实体在数据库表中插入新行。 合并操作之后,实体处于受管理状态。

    1.6K30

    具有嵌套关系的可重用API资源——Laravel5.5

    注:本文受到Laravel创始人Taylor Otwell介绍使用 Laravel5.5 开发API时如何替换 Fractal 的启发。 1....在 database/factories 目录下的 PostFactory.php 文件中,你会定义创建posts模型时所用的数据格式和规则。...tinkerfactory(App\Post::class)->times(2)->create();factory(App\Post::class)->times(2)->create(['user_id' => 1]);数据库种子用于向数据库中填充测试数据或初始数据...这是在开发或测试阶段常用的操作,可以使用 Laravel 的 Seeder 来填充数据库表,确保数据库中有一些初始数据可用于开发和测试。 3....这样做有利于避免 N+1 查询问题(在获取关联数据时出现的效率问题),同时可以使用单个资源类处理不同的情况。如果关联数据不可用,资源类会忽略它;反之,如果可用,资源类会将其包含在返回的数据中。

    15810

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

    在对数据库进行操作之前,需要先创建数据表,在诸如 Laravel 这种现代框架中,通过代码驱动让数据表结构的定义变得非常简单。...当我们迁移数据库时,系统获取所有数据库迁移文件(包括 database/migrations 目录下和扩展包中注册的),然后按照文件名中包含的日期时间排序,从最早的迁移文件开始,依次执行每个迁移类中的...创建迁移文件 正如我们在 Artisan 命令中所提到的,Laravel 提供了一个 Artisan 命令 make:migration 帮助我们快速生成数据库迁移文件,该命名包含一个参数,就是要创建的迁移的名称...此外,这个 Artisan 命令还支持两个可选的选项,--create= 用于指定要创建的数据表名称,以及 --table= 用于指定要修改的数据表名称,前者在定义创建数据表迁移文件时使用,后者在定义更新数据表迁移文件时使用...创建新字段 接下来,我们看一下如何为创建的数据表添加字段,前面我们已经说了,这个操作在 Schema::ceate 方法的第二个参数的闭包函数中完成: Schema::create('users', function

    2.1K21

    Laravel 框架入门

    强大的工具和功能:如 Eloquent ORM、Blade 模板引擎、路由、认证和授权等。活跃的社区支持:Laravel 拥有一个庞大的社区,遇到问题时可以很容易找到解决方案。...启动开发服务器安装完 Laravel 后,进入项目目录并启动开发服务器:cd my-laravel-appphp artisan serve此时,你可以在浏览器中访问 http://localhost:...三、Laravel 项目的基础结构在 Laravel 项目中,有一些重要的文件和目录,你需要理解它们的作用。...database/:存放数据库迁移(migrations)、种子数据(seeds)等。tests/:存放自动化测试代码。...; }}接着,将路由指向控制器的方法:Route::get('/', [HomeController::class, 'index']);这样,当访问根目录时,Laravel 会调用 HomeController

    13800
    领券