查找方法

get

  1. /**
  2. * 根据主键获取对象
  3. * @param $id
  4. * @param bool $cache 是否使用缓存
  5. * @param null $cache_time 缓存时间
  6. * @return mixed|Record|string
  7. */
  8. public static function get($id,$cache= true,$cache_time=null)

使用缓存时 获取相同 id 的对象会使用缓存

实例:

  1. $user=User::get(1);
  2. $user->name='tengzhinei';
  3. $user->save();

getLock

获取数据同时加锁,注意需要在事物中使用

  1. DB::runInTrans(function(){
  2. $user=User::getLock(1);
  3. $user->name='tengzhinei';
  4. $user->save();
  5. });

find

  1. public static function find(array $where)

查询一条符合条件的记录,没有返回null

实例:

  1. $user=User::find(['domain'=>'rapphp','account'=>'tengzhinei']);

如果模型中配置了缓存key且查询条件匹配的换查询结果会进缓存

  1. class User extend Record{
  2. public function cacheKeys(){
  3. return ['domain,account'];
  4. }
  5. }

findCreate

  1. public static function findCreate(array $where)

查询一条符合条件的记录,如果没有返回一条条件相同的对象

实例:

  1. $user=User::findCreate(['domain'=>'rapphp','account'=>'tengzhinei']);
  2. 如果数据库不存在当前对象返回的对象不为空
  3. 返回对象 User{
  4. 'domain':'rapphp',
  5. 'account':'tengzhinei'
  6. }

缓存条件和 find 相同

select


  1. /**
  2. * 检索
  3. * @param string $fields 字段
  4. * @param bool $contain 包含还是不包含
  5. * @return Select
  6. */
  7. public static function select($fields='', $contain=true)

实例

  1. //返回全部字段
  2. $users=User::select()->limit(1,10)->findAll();
  3. //返回部分字段
  4. $users=User::select('name,account'')->limit(1,10)->findAll();
  5. //不包含字段
  6. $users=User::select('phone',false')->limit(1,10)->findAll();

上一篇:增删改   下一篇:数据类型