service get list一般规范

1.参数检测

if (!isset($options['user_id']) || (int)$options['user_id'] <= 0) {
   return self::assign(99, Yii::t('user', 'User id is required'));
}

2.定义表

$tables      = [Contacts::tableName() . ' c'];
$left_join[] = [
   'table'    => User::tableName() . " as u",
   'relation' => "c.contact_id=u.user_id"
];

3.固定条件

$map = ['and', ' 1=1 '];//查询条件
$map[] = ['and', 'c.user_id =:user_id'];
$params[':user_id'] = intval($options['user_id']);

4.动态条件

$map[] = ['and', 'c.status =:status'];
if (isset($options['status']) && intval($options['status']) > 0) {
   $params[':status'] = intval($options['status']);
} else {
   $params[':status'] = self::STATUS_VALID;
}
if (isset($options['contact_id']) && intval($options['contact_id']) > 0) {
   $map[]                 = ['and', 'c.contact_id =:contact_id'];
   $params[':contact_id'] = intval($options['contact_id']);
   $options['get_one']    = true;
}

5.页数

$options['page']  = isset($options['page']) ? $options['page'] : 1;
$options['limit'] = isset($options['limit']) ? $options['limit'] : 12;
$options['start'] = isset($options['nopage']) && $options['nopage'] ? (int)(($options['page'] - 1) * $options['limit']) : 0;

6.排序参数

$options['order_by'] = isset($options['order_by']) ? $options['order_by'] : 'list_order DESC,created ASC';

7.查询字段

$def                 = 'c.id,c.contact_id as user_id,c.status,c.created_by,c.created,u.nickname,u.head_url,
                  first_name,u.last_name,u.user_name,u.parent_id';
$options['fields']   = isset($options['fields']) ? $options['fields'] : $def;

8.查询返回

$data                = self::listData($tables, $map, $params, $options, $left_join);
$data                = empty($data) ? "" : $data;

return self::assign(0, Yii::t('common', 'Success'), $data);

转载于:https://my.oschina.net/xuyaoxiang/blog/868098

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值