php笔记

  • whereExists 方法适用于需要根据其他表的数据来过滤主查询的结果,只保留与子查询匹配的记录。
$result = $result->whereExists(function ($query) use ($rightTagIds) {
$query->select(DB::raw(1))
      ->from('third_goods_right_relate_tag')
      ->whereIn('third_goods_right_relate_tag.tag_id', $rightTagIds)
      ->whereRaw('bht_third_goods_right_relate_tag.goods_right_id = bht_third_order_rights.right_id');
});
  • leftjoin闭包(闭包where相当于把连表的数据通过where过滤一遍,再左连接。where条件不闭包的话就相当于join了)
->leftJoin($p_log, function (Builder $query) use ($p_log, $log, $p_log_type) {
            $query->on("{$p_log}.order_right_id", '=', "{$log}.order_right_id")
                  ->whereIn("{$p_log}.type", $p_log_type);
        })
  • id => name分组
 $staffUsers = UserOrgStaff::select(['user_id', 'nickname'])
            ->where(['org_id' => $orgId])
            ->pluck('nickname', 'user_id')
            ->toArray();
  • 根据某个key组成对象
 ->keyBy('user_id')->toArray();
  • 取前缀及if语句
 $tp = env('DB_PREFIX');
 $r->selectRaw("IF({$tp}qw_channel_code.type=1,{$tp}qr.qr_code_url,{$tp}sc.code_pic_url) as code_pic_url")
  • group by的时候也可以分页,记得by id,by其它的可能导致顺序错乱
SELECT *
FROM `bht_third_order_rights`
LEFT JOIN `bht_user_org_customer`
ON `bht_third_order_rights`.`customer_user_id` = `bht_user_org_customer`.`user_id`
AND `bht_user_org_customer`.`org_id` = 9
WHERE `bht_third_order_rights`.`org_id` = 9
GROUP BY `bht_third_order_rights`.`id`
ORDER BY `bht_third_order_rights`.`id` DESC
LIMIT 20;
  • 其它
$a = null;//null或者''或者[]都不会报错
var_dump($a['a']['b'] ?? 1);//不会报错,并且返回为1
null ?? 1 = 1 (??只有当前面的值为null时,才取后面的值)
null,0,false,'',[] ?: 1 = 1 (?:为三元运算符的简写方式)
if(null,0,'0',false,'',[]) 或者 !empty 这些值都为false

退出php服务:按ctrl+\(反斜杠)
db的host(只允许公司连接):…lo,省略了,自己找
重启项目:

php bin/hyperf.php tmg:start -dc

查看进程占用情况:sudo lsof -i :9801
终止进程:sudo kill -9 1234

注解参数传递:
传递主要的单个参数 @DemoAnnotation(“value”)
传递字符串参数 @DemoAnnotation(key1=“value1”, key2=“value2”)
传递数组参数 @DemoAnnotation(key=(“value1”,“value2”))

携程
创建:
Coroutine::create(function () {
})
或者go,已关闭,不要使用
go(function() {
})
或者
co(function() {
})

你可能感兴趣的:(php,笔记,1024程序员节)