1、laravel连接数据库
laravel支持的数据库有四种:MySQL PostgreSQL SQLite SQL Server
1)、连接MySQL
1:连接数据库的配置文件在:config文件夹下的database.php文件中找到mysql部分配置:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'mylaravel'),//数据库名
'username' => env('DB_USERNAME', 'root'),//用户名
'password' => env('DB_PASSWORD', 'root'),//密码
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
],
2:在.env文件里配置数据库的名字,密码,数据库名
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mylaravel
DB_USERNAME=root
DB_PASSWORD=root
【注:】如果是php artisan serve 方式启动的,修改了配置文件,则需要重新启动,才能读取配置文件。,如果是wamp 等环境则不需要重启。
2)、创建user表
①、首先通过Artisan 命令创建迁移文件
1:在框架的根目录下cmd中执行下列命令创建user表的迁移文件:
php artisan make:migration create_user_table
运行结果创建成功:
这样我们就可以在database/migrations目录下发现我们新生成的文件,文件名前一部分是建立的时间后一部分是执行的名称。
打开文件如下:
up()方法里新增消息(表,列,索引),down()方法删除消息。
在up()里添加如下代码:
public function up()
{
Schema::create('user', function (Blueprint $table) { //建立数据表user
$table->increments('id'); //主键自增
$table->string('name')->unique(); //'name'列唯一
$table->string('password'); //'password'
$table->string('email')->unique(); //'email'唯一
$table->timestamps(); //自动生成时间戳记录创建更新时间
});
}
②在cmd中执行迁移文件:
【注】如果当前是第一次执行迁移文件的话,则需要先去执行:php artisan migrate:install 用于创建记录迁移文件的记录数据表:
执行成功后发现数据库中多出一张表,该表将记录已经执行过的迁移文件。
现在可以执行迁移文件了:
php artisan migrate
执行结果:
数据库也自动创建了一张user表
至此,表创建成功了。开始往表中添加记录。
3)、数据的填充
填充操作就是往数据表中填写测试数据。(增加数据)
①、填充文件的创建:
填充器的目录:
利用cmd 创建填充文件:
php artisan make:seeder UserTableSeeder
创建结果:
打开填充文件发现只有一个run()方法,并进行编辑 。
public function run()
{
//定义数组
$data=[
[
'name' => 'Bom',
'password' => '123123',
'email' => '123@123.com'
],
[
'name' => 'xppbin',
'password' => '123123',
'email' => '456@123.com'
],
[
'name' => 'Su',
'password' => '123123',
'email' => '789@123.com'
],
[
'name' => 'Gao',
'password' => '123123',
'email' => '741@123.com'
]
];
//写入数据
DB::table('user')->insert($data);
}
②执行填充文件
php artisan db:seed --class=UserTableSeeder
执行成功后结果
同时数据表里也有了数据
填充器的执行没有回滚操作,可以去客户端直接清空表数据。
上面我们简单插入了几天数据,但如果做项目这样的方式肯定不行,会使用工厂模型去解决这个问题。