数据库建立及迁移

Laravel 5 把数据库配置的地方改到了 `learnlaravel5/.env`,打开这个文件,编辑下面四项,修改为正确的信息:

1
2
3
4
5
6
7
DB_HOST=localhost
 
DB_DATABASE=laravel5
 
DB_USERNAME=root
 
DB_PASSWORD=password

推荐新建一个名为 laravel5 的数据库,为了学习方便,推荐使用 root 账户直接操作。

Laravel 已经为我们准备好了 Auth 部分的 migration,运行以下命令执行数据库迁移操作:

php artisan migrate

得到的结果如下:

如果你运行命令报错,请检查数据库连接设置。

至此,数据库迁移已完成。

模型 Models

接下来我们将接触Laravel最为强大的部分,Eloquent ORM,真正提高生产力的地方,借用库克的一句话:鹅妹子英!

运行一下命令:

1
2
3
php artisan make:model Article
 
php artisan make:model Page

> Laravel 4 时代,我们使用 Generator 插件来新建 Model。现在,Laravel 5 已经把 Generator 集成进了 Artisan。

现在,Artisan 帮我们在 `learnlaravel5/app/` 下创建了两个文件 `Article.php` 和 `Page.php`,这是两个 Model 类,他们都继承了 Laravel Eloquent 提供的 Model 类 `Illuminate\Database\Eloquent\Model`,且都在 `\App` 命名空间下。这里需要强调一下,用命令行的方式创建文件,和自己手动创建文件没有任何区别,你也可以尝试自己创建这两个 Model 类。

Model 即为 MVC 中的 M,翻译为 模型,负责跟数据库交互。在 Eloquent 中,数据库中每一张表对应着一个 Model 类(当然也可以对应多个)。

如果你从其他框架转过来,可能对这里一笔带过的 Model 部分很不适应,没办法,是因为 Eloquent 实在太强大了啦,真的没什么好做的,继承一下 Eloquent 类就能实现很多很多功能了。

如果你想深入地了解 Eloquent,可以阅读系列文章:Laravel 5框架学习之Eloquent 关系

接下来进行 Article 和 Page 类对应的 articles 表和 pages表的数据库迁移,进入 `learnlaravel5/database/migrations` 文件夹。

在 ***_create_articles_table.php 中修改:

1
2
3
4
5
6
7
8
9
10
Schema::create('articles', function(Blueprint $table)
{
    $table->increments('id');
    $table->string('title');
    $table->string('slug')->nullable();
    $table->text('body')->nullable();
    $table->string('image')->nullable();
    $table->integer('user_id');
    $table->timestamps();
});

在 ***_create_pages_table.php 中修改:

1
2
3
4
5
6
7
8
9
Schema::create('pages', function(Blueprint $table)
{
    $table->increments('id');
    $table->string('title');
    $table->string('slug')->nullable();
    $table->text('body')->nullable();
    $table->integer('user_id');
    $table->timestamps();
});

然后执行命令:

php artisan migrate

成功以后, tables 表和 pages 表已经出现在了数据库里,去看看吧~

数据库填充 Seeder

在 `learnlaravel5/database/seeds/` 下新建 `PageTableSeeder.php` 文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
use Illuminate\Database\Seeder;
use App\Page;
 
class PageTableSeeder extends Seeder {
 
 public function run()
 {
  DB::table('pages')->delete();
 
  for ($i=0; $i < 10; $i++) {
   Page::create([
    'title'  => 'Title '.$i,
    'slug'  => 'first-page',
    'body'  => 'Body '.$i,
    'user_id' => 1,
   ]);
  }
 }
 
}

然后修改同一级目录下的 `DatabaseSeeder.php`中:

// $this->call('UserTableSeeder');

这一句为

$this->call('PageTableSeeder');

然后运行命令进行数据填充:

php artisan db:seed

去看看 pages 表,是不是多了十行数据?

最新文章

  1. 把DATATABLE,DS中的内容用HTML的方式显示
  2. Exec in Job and NewQuery
  3. jquery高级函数
  4. accept()
  5. 第六章 prototype和constructor
  6. Spring中WebApplicationContext的研究
  7. Android开发之实用小知识点汇总-2
  8. iOS中SQLite知识点总结1
  9. PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205
  10. haproxy path_end不能忽略
  11. Python爬虫(十五)_案例:使用bs4的爬虫
  12. Hibernate学习---Configuration,Session,SessionFactory
  13. 裁剪Ubuntu内核和模块管理2
  14. CentOS7.2安装jdk7u80
  15. .net 第一次请求比较慢
  16. Bootstrap字体无法显示
  17. What-does-git-remote-and-origin-mean
  18. python中的argv使用
  19. MIPS Mars 安装
  20. Linux wget 命令下载文件

热门文章

  1. 从printf(&quot;\40d\n&quot;)看转义字符
  2. Linux脚本执行过程重定向
  3. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
  4. Android --Activity与Fragment通讯
  5. Perl Debug error: SetConsoleMode failed, LastError=|6|
  6. 关于IOS框架的解释
  7. category分类
  8. Spring Security HTTP Basic for RESTFul and FormLogin (Cookies) for web - Annotations
  9. iOS如何统计渠道
  10. DataGridView的单元格控制只能输入数字