定义表结构

自动生成表结构

  1. $model = new User();
  2. $table = $model->schemaInfo();

使用模型中的schemaInfo()方法可以获取当前模型指定数据表的结构返回一个EasySwoole\ORM\Utility\Schema\Table对象

::: tip 模型本身会自动生成表结构,但每次启动Easyswoole,都会去重新获取一次表结构信息,并且在这次服务中缓存,直到Easyswoole服务停止或者重启 如果不希望每次重启都去请求一次数据库,可自行定义该方法,返回Table对象 :::

自定义表结构

在模型类中,我们实现一个getSchemaInfo方法,要求返回一个EasySwoole\ORM\Utility\Schema\Table实例化对象

  1. use EasySwoole\ORM\Utility\Schema\Table;
  2. class User extends AbstractModel
  3. {
  4. /**
  5. * 表的获取
  6. * 此处需要返回一个 EasySwoole\ORM\Utility\Schema\Table
  7. * @return Table
  8. */
  9. public function schemaInfo(bool $isCache = true): Table
  10. {
  11. $table = new Table();
  12. $table->colInt('id')->setIsPrimaryKey(true);
  13. $table->colChar('name', 255);
  14. $table->colInt('age');
  15. return $table;
  16. }
  17. }

表字段

在Table中,有colX系列方法,用于表示表字段的类型,如以上示例的Int,Char

  1. $table->colInt('id');
  2. $table->colChar('name', 255);

表主键

如果需要将某个字段指定为主键 则用连贯操作方式,在后续继续指定即可。

  1. $table->colInt('id')->setIsPrimaryKey(true);