TP6的注意事项

举报
黄啊码 发表于 2022/06/29 00:11:26 2022/06/29
【摘要】 create()可以默认根据主键插入 save()需要指定id名称叫做id,create不需要 获取自增id $insert_data = $this->model->create($data); echo $insert_data->id;   //echo&nbs...

create()可以默认根据主键插入

save()需要指定id名称叫做id,create不需要

获取自增id

$insert_data = $this->model->create($data);

echo $insert_data->id;

 

//echo $this->model->getLastSql();

ThinkPHP5框架


  
  1. 1 whereOr 方法
  2. 2
  3. 3 使用whereOr 方法进行OR 查询:
  4. 4 Db::table('think_user')
  5. 5 ->where('name','like','%thinkphp')
  6. 6 ->whereOr('title','like','%thinkphp')
  7. 7 ->find();
  8. 8 多字段相同条件的OR 查询可以简化为如下方式:
  9. 9 Db::table('think_user')
  10. 10 ->where('name|title','like','%thinkphp')
  11. 11 ->find();

where 内部实现 精选or 条件拼接,一直没有找到合适的方法,不像tp3版本可以使用采用以下方法:

$map['user_id'] = 1;
$map['status'] = 0;
$or_map['user_id'] = 1;
$or_map['audit']=['in',['1,2']];
$where_main['_complex'] = array(
    $map,
    $or_map,
    '_logic' => 'or'
);
 
$this->table->where($where_main)->select();

tp5中采用闭包的方式:
 

$map['user_id']=1;
$map['status']=0;
$or_map['user_id']=$map['user_id'];
$or_map['audit']=['in',['1,2']];
$list = Db::name('table')->where(function ($query) use ($map) {
                    $query->where($map);
                })->whereOr(function ($query) use ($or_map) {
                    $query->where($or_map);
                })->limit(0,$pn*$page_size)->select();

SELECT * FROM `tp_table` WHERE  (  `user_id` = '1'  AND `status` = 0 ) OR (  `user_id` = '1'  AND `audit` IN ('1,2') )

文章来源: markwcm.blog.csdn.net,作者:黄啊码,版权归原作者所有,如需转载,请联系作者。

原文链接:markwcm.blog.csdn.net/article/details/109227342

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。