Laravel 5.2数据库--填充数据
1、简介
Laravel 包含了一个简单方法来填充数据库——使用填充类和测试数据。所有的填充类都位于database/seeds目录。填充类的类名完全由你自定义,但最好还是遵循一定的规则,比如可读性,例如UserTableSeeder等等。安装完 Laravel 后,会默认提供一个DatabaseSeeder类。从这个类中,你可以使用call方法来运行其他填充类,从而允许你控制填充顺序。
2、编写填充器
要生成一个填充器,可以通过 Artisan 命令make:seeder。所有框架生成的填充器都位于database/seeders目录:
php artisan make:seeder UserTableSeeder
一个填充器类默认只包含一个方法:run。当Artisan命令db:seed运行时该方法被调用。在run方法中,可以插入任何你想插入数据库的数据,你可以使用查询构建器手动插入数据,也可以使用 Eloquent 模型工厂。
举个例子,让我们修改 Laravel 安装时自带的DatabaseSeeder类,添加一个数据库插入语句到run方法:
<?php use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model; class DatabaseSeeder extends Seeder{
/**
* 运行数据库填充
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
'name' => str_random(10),
'email' => str_random(10).'@gmail.com',
'password' => bcrypt('secret'),
]);
}
}
如果是多个表的话,可以添加多个表
<?php use Illuminate\Database\Seeder; use App\Models\User; class UserTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{ DB::table(User::getModel()->getTable())->delete(); User::create([
'id' => 1,
'name' => '生活用品',
]);
User::create([
'id' => 2,
'name' => '出差用具',
]);
}
}
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(UserTableSeeder::class);
}
}
3、运行填充器
编写好填充器类之后,可以使用 Artisan 命令db:seed来填充数据库。
默认情况下,db:seed命令运行可以用来运行其它填充器类的DatabaseSeeder类,
但是,也可以使用--class 选项来指定你想要运行的独立的填充器类:
php artisan db:seed
php artisan db:seed --class=UserTableSeeder
Laravel 5.2数据库--填充数据的更多相关文章
- Laravel使用Seeder自动填充数据
要查看代码,可以点击 或者转到链接:https://github.com/laravel/framework Laravel自动填充数据使用的是Seeder类 <?php use Illumin ...
- 用Python写一个向数据库填充数据的小工具
一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...
- Laravel 5.2 数据库迁移和数据填充
一.数据库迁移 Laravel 的数据库迁移提供了对数据库.表.字段.索引的一系列相关操作.下面以创建友情链接表为例. 1. 创建迁移 使用 Artisan 命令 php artisan make: ...
- Laravel学习笔记(六)数据库 数据库填充
数据库驱动的应用程序往往需要预先填充数据到数据库,以便进行测试和演示. 什么是种子数据 种子数据就是必须要加载了应用程序才能正常运行的数据.大多数应用程序需要在开发.测试和生产中加载一些参考数据. 一 ...
- Laravel5.1学习笔记18 数据库4 数据填充
简介 编写数据填充类 使用模型工厂类 调用额外填充类 执行填充 #简介 Laravel includes a simple method of seeding your database with t ...
- laravel框架一种方便的快速填充数据的方法
首先大家都知道在laravel框架里是采用seeder来填充数据的,具体命令如下,请将如下的类名称替换成你具体的seeder类名. 首先创建seeder类 php artisan make:seede ...
- laravel基础课程---16、数据迁移(数据库迁移是什么)
laravel基础课程---16.数据迁移(数据库迁移是什么) 一.总结 一句话总结: 是什么:数据库迁移就像是[数据库的版本控制],可以让你的团队轻松修改并共享应用程序的数据库结构. 使用场景:解决 ...
- ADO.NET 快速入门(四):从数据库填充 DataSet
从数据库获取数据很容易,处理数据更容易.如果想要从数据库获取只进.只读的数据流结果集,你可以使用 DataReader 执行命令并且检索它.关于如何使用 DataReader,请参考:使用 OLE D ...
- [转]Laravel 4之数据库操作
Laravel 4之数据库操作 http://dingjiannan.com/2013/laravel-database/ 数据库配置 Laravel数据库配置在app/config/database ...
随机推荐
- http.lua里的装饰器
摘自:http.lua local co_yield = coroutine.yield local co_create = coroutine.create local co_status = co ...
- 用python实现单向链表
单向链表 单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域.这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值. 表元素域ele ...
- Xampp PHPStorm XDebug配置
(1)https://xdebug.org/download.php 下载当前Xampp对应的XDebug版本. (2)将该dll放入C:\xampp\php\ext (3)修改Control Pan ...
- 判断闰年(Java)
package day01; import java.util.Scanner; public class leap_year { public static void main (String[] ...
- ASP.NET 配置log4net启用写错误日志功能
http://www.cnblogs.com/yeminglong/archive/2013/05/21/3091192.html 首先我们到apche的官网下载log4net的项目编译得到log4n ...
- 第25月第11天 deeplearning.ai
1.网易云课堂 深度学习工程师 点击进入课程地址(英文)(收费) 点击进入课程地址(中文)(免费) 第一门 神经网络和深度学习 第二门 改善神经网络 第三门 结构化机器学习项目 第四门 卷积神经网络 ...
- Django REST Framework API Guide 02
本节大纲 1.Generic Views 2.ViewSets 1.Generic Views CBV的主要的一个优点就是极大的允许了对于代码的从用.自然,rest framework取其优势,提供 ...
- 使用recyclerView item布局match_parent属性失效的问题
https://blog.csdn.net/overseasandroid/article/details/51840819
- STL之partition学习
顺便存一下numeric函数的使用方法吧,感觉用处不大. https://blog.csdn.net/baishuo8/article/details/84073565 partition函数,将元素 ...
- proxysql 系列 ~ 高可用架构
一 整体架构二 proxysql层 proxysql+keepalived对外提供vip 1 这里有一点要注意,虽然keepalived有脑裂危险,但是对于向proxysql这种无状态中 ...