限时免费试用:欢迎注册 api.bigmodel.org ,快速体验大模型 API 接入服务。
当前位置:首页 >开发者 >网站框架 >后端框架 >ThinkPHP

tp5 数据库操作匿名函数+分页(paginate/each)

分类:ThinkPHP时间:2019-03-04浏览:6465
where(function ($query) use($name, $id) {
    $query->where('name', $name)
        ->whereOr('id', '>', $id);
})->select();
SELECT * FROM `think_user` WHERE ( `name` = 'thinkphp' OR `id` > 10 )



Db::table('think_user')
->where('name', ['like', 'thinkphp%'], ['like', '%thinkphp'])
->where(function ($query) {
    $query->where('id', ['<', 10], ['>', 100], 'or');
})
->select();
SELECT * FROM `think_user` WHERE ( `name` LIKE 'thinkphp%' AND `name` LIKE '%thinkphp' ) AND ( `id` < 10 or `id` > 100 )




$id=1;
$res = $model->table('channel')
->where('channel_id','NOT IN',function($query) use ($id) {
    $query->table('adv_channel_rule')->where("adv_id",$id)->field('channel_id');
})->select();
SELECT * FROM `channel` WHERE channel_id NOT IN (SELECT channel_id FROM adv_channel_rule WHERE adv_id='.$id.')


// paginate
// each  使用与分页之后进行遍历处理
$list = ProModel::alias('a')
->field('a.*,b.name as brand')
->join('changshang b','a.bid=b.id')
->where($where)
->order('sort desc,id asc')
->paginate($limit,false,['query' => request()->param()])
// ->paginate(10,true)//简介diamante
->each(function($item, $key){
    $item['prices'] = db('product_price')->where(["id"=>$item['id']])->order("quantity asc")->select();
    $item['packaging'] = db('param_child')->where(["id"=>$item['id'],"pid"=>"231"])->value('value');
    $yr = db('changshang')->where(["id"=>$item['bid']])->value('ctime');
    $item['yr'] = date("Y",time())-date("Y",$yr);
    return $item;
});










本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。
0/500
Share your thoughts respectfully.