• 查找方法
    • get
    • getLock
    • find
    • findCreate
    • select

    查找方法

    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();

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