通过某字段值获取数据

  1. $this->getByColumn(1);
  2. //自动获取主键,相当于$this->mapDbAndTable()->where('主键', 1)->getOne();
  1. $this->getByColumn(1, 'uid');
  2. //手动传入字段名,相当于$this->mapDbAndTable()->where('uid', 1)->getOne();
  1. $this->getByColumn(1, 'uid', 'users');//手动传入表名 v2.6.2起可用
  2. $this->getByColumn(1, 'uid', 'users', 'u_');//手动传入表名,且特殊指定表前缀v2.6.5起可用
  3. 这里也可以直接传多个条件,第一个参数控制是AND还是OR
  4. $this->getByColumn(true, ['id' =>1, 'name'=>'name']);// `id`=1 AND`name`='name'
  5. $this->getByColumn(false, ['id' =>1, 'name'=>'name']);// `id`=1 OR `name`='name'
若未传入表名(v2.6.2以下版本)。这边会自动判断当前Model中有无$table 属性,若有则自动提取$table属性为要操作的table,若没有则自动获取model名为表名如 UserModel 对应的表名为 pre_user,建议在XxxModel中声明$table属性。若没传入字段名框架会自动获取表的主键名称,如线上环境有修改主键名请清空相应缓存 点击查看详情说明。若没传入前缀,框架会自动获取当前Model有无$tablePrefix属性,若有则自动提取,若没有则使用配置文件中数据库相关配置里配置的表前缀,建议在当前模型的表前缀与配置中数据库相关配置里配置的表前缀不一样的时候在当前model中声明$tablePrefix属性

原文: http://doc.cmlphp.com/devintro/model/mysql/fastmethod/getby.html