Schema::create('consults', function (Blueprint $table) {
$table->increments('id');
$table->string('sex');
$table->unsignedInteger('birth_year');
$table->string('phone', 150);
$table->string('discomfort')->comment('');
$table->string('disease_condition')->comment('');
$table->string('help')->comment('');
$table->boolean('state')->default(false)->comment('true:已回复; false:待回复');
$table->boolean('is_read')->comment('');
$table->timestamps(); $table->unsignedInteger('user_id')->nullable();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});

列类型

在前面的示例中,我们指定的名称列的类型为"string"。但这是什么意思?数据库中通常没有”string”类型的列。

请记住,Laravel 试图使您的应用程序独立于底层的数据库;例如,如果你想,你可以使用 MySql 开发并部署到 Postgresql。如果您在迁移中使用 MySql 的列类型,应用到 Postgres 数据库可能无法工作。所以,Laravel 迁移通过使用通用的数据类型使你与底层的数据库类型系统隔离。如果我们要迁移 MySql 数据库, string()方法将创建VARCHAR(255)类型的列。在 Postgres,同一迁移可能会添加CHAR VARYING(255)类型的列 (虽然VARCHAR类型支持所有主要的数据库平台)。

Laravel 直接支持以下数据类型:

Laravel 方法

列的类型

increments($column)

向表中添加自动递增的主键

string($column)

添加一个VARCHAR(255)列

string($column, $length)

添加具有长度的VARCHAR

integer($column)

向表中添加一个INTEGER列,

float($column)

向表中添加一个FLOAT的列

decimal($column, $precision, $scale)

添加一个DECIMAL列的精度和小数位数。精度是总数中数字的位数。规模是小数点的右侧的位数。例如,数 123.45 具有精度为 5 和 2 的小数。从逻辑上讲,规模不能大于精度。

boolean($column)

向表中添加一个BOOLEAN的列。注意: 存储布尔值的方式而有所不同从一个数据库到另一个数据库。一些使用"1"和"0"的整数值来表示 true 和 false,个别的,其他人使用"T"和"F"等字符。Laravel 的"boolean"类型映射到数据库的所有系统上的small integer列。Laravel 很好的处理 PHP 的true与false之间的映射,所以你不需要担心。

text($column)

相当于表的TEXT

blob($column)

相当于表的BLOB

binary($column)

相当于表的BINARY

dateTime($column)

相当于表DATETIME

timestamp($column)

相当于表TIMESTAMP

date($column)

相当于表的DATE

time($column)

相当于表的TIME

enum($column, array $allowed)

在表上创建一个新的ENUM列

此外,还有几个你需要知道的扩展方法:

Laravel 方法

列的类型

timestamps()

timestamps()与timestamp()不同。它是一个 Laravel 用来管理创建和修改作为created_at和updated_at TIMESTAMP列的便利方法。他们是 Laravel 可以自己修改的两个特殊的数据库列。created_at列为仅当行被创建时当前时间戳。另一方面, updated_at被修改为每次操作的行的数据时当前时间戳。

nullable()

将指定列允许NULL值。默认情况下,Laravel 使在数据库级别需要通过添加NOT NULL约束的列。

default($value)

设置要用于新行作为初始值的列的默认值。你永远不需要显式设置的默认值为 null。不设置它默认值就为null。

unsigned()

设置INTEGER列为UNSIGNED。

最新文章

  1. mysql服务器和配置优化
  2. mongodb 查询的用法
  3. mybatis xml 大于 小于
  4. Leetcode Integer to Roman
  5. 用re-sign.jar重签名apk后安装失败的解决办法
  6. js获取鼠标位置
  7. DOM 之 SAX操作
  8. Hadoop学习记录(7)|Eclipse远程调试Hadoop
  9. 转】Mahout分步式程序开发 基于物品的协同过滤ItemCF
  10. SQL 分组 加列 加自编号 自编号限定 分类: SQL Server 2014-11-25 15:41 283人阅读 评论(0) 收藏
  11. mysql的limit经典用法及优化
  12. 一个App从创意到最终上架到App Store里的整个过程是怎样的?
  13. vue初级学习--idea的环境搭建
  14. mysql 两例习题
  15. 用JavaScript写一个简单的计算器
  16. 【排列组合】ZSC1076: 数学、不容易系列之三——考新郎
  17. MongoDB副本集(一主一备+仲裁)环境部署-运维操作记录
  18. 设置SharePoint部门站点各个文件夹的权限
  19. 使用FireFox插件RESTClient、HttpRequester模拟http(get post)请求
  20. (纪录片)光的故事 BBC Light Fantastic (2004)

热门文章

  1. 添加jar包到本地Maven仓库
  2. 软件工程(GZSD2015) 第二次作业小结
  3. PHP整洁之道
  4. 动态生成的dom元素如何绑定事件
  5. 父元素高度设置为min-height,子元素高度设置为100%,但实际上子元素高度你知道是多少吗?
  6. ThreadGroup解读
  7. Android 6.0以上动态获取权限
  8. 【模板】2-SAT 问题
  9. macOS修改Dock隐藏速度
  10. 洛谷P2822 组合数问题(题解)