#

当前标签共计5篇文章。

laravel中使用模型进行join查询时设置别名

2020-03-15 18:47:30
60

以下两种写法一致 ,后一种可以把users设置别名u ```php $earliestTime = (new User())->leftJoin('ra_users_relation as ur', 'users.id', '=', 'ur.uid') ->where('ur.ra_uid', '=', Auth::user()['id']) ->min('users.created_at'); $earliestTime = (new User())->from('users as u')->leftJoin('ra_users_relation as ur', 'u.id', '=', 'ur.uid') ->where('ur.ra_uid', '=', Auth::user()['id']) ->min('u.created_at'); ```

字符串的密钥怎么转为pem文件

2020-03-08 19:03:11
20

前几日对接支付宝相关接口时遇到一个问题,根据官方提示操作获得的公钥和密钥都是字符串,但是php用的时候确是要转为pem格式的,直接把字符串保存为pem文件是错误的。 百度搜了好久才找到方法,原来pem格式的密钥和公钥有专门的格式才可以,pem格式以64位长度换行分割,前后分别加上公私钥分割标志来生成。虽然本文的名称可能不是很严谨的表达本文的内容,却是我当初百度之后发现有一些朋友的搜索词,希望能看到这个来解决问题吧. 代码如下: ```php $publicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo6jiR3nv2EvP4RG3DpDuJD3X6O4b24ljPOPmb2hGJPEEM94/SLjZlMbgr40Krii1Skf8lnh9y8hifk1+Re0vrMMCssLizX6EQkp3wunibB99ch4qq7P6TdLvIePj6joWAz5jnvsYYefRlXDzTsX/5jvuHAkS6u7W2Z4vZaNWcUIBVBWjlydgcQ29cVtIaoaGcDMTOfx3MVjU+mBQoK0p5aVfBbqEU0w9uKIWIp+U8GuQUiZANH6Msfdmg9OcJegfHaeUp4YbIzcp5I3veenHlfbKaaQ50DmKyOUkq9GAes5hFpvNtuLYbSzw7h/D4OWRcnjF2uyA8Q/vVzd1CPpM1wIDAQAB'; $privateKey = 'MIIEpAIBAAKCAQEAtDT8DOpezxA0yGF2vwzz7ULRI/TIAqqCjYhQALmCPhKrOjgec+Suj+pCzZGd1oRJ+IXx9qXLl2z8pLcLhoiLkKGLLtHnQkMnuwR9EIlNMaUO4fBNC7BF7CeiWRHKSlG16H0ct7lfKDEAypIieQH2avG9sPeugtYplwdcLGrf22Zay4Jnxzg+yv/BllRNb6Mxxb657QvmISvLj+Mpf259NXoP/Ecnb92rHEMopQ4tFObQ6QywhsnkcWbhSMUYgmNmgfqUh7bP0Uhr5yLLOPODAeLAeNLE+tLIcAD3LnZxKCUM0nYSWO7zrX5AObjuYG+GmM0EN2pkjGzUOczMClVfJwIDAQABAoIBABfUMcgbbbH/uJsOmD8nHVIwVatlgNUpat4AOmP+I8TFfzLRnOVCRfrtxSudp7tn/sgIHji5L7S0SqwVMEb340yar+bfBq9yZdyK+WaoYTbBVrh1qBp1kqlpjEQu4Ar3xxAZCyUYNAcCg9JFhJ1vrv/xO14dQkw2uYUpCf0tnLBMHXycdp4uHPBc0OpY/1wGCZCJq/fnncFNRRBfHHfFW91cASmqWQKnw7V7fu+xHbxoWHashYY9RKpb8ukrV2/bvbdiz37aHvThEdXw9D0bJ15GpegPN2f5WaK8Ic/gnRSATXmG5qddTqrZ0HAQ+iYmmzkc/IckVCvL0eNJX7LLTJECgYEA7RwPsyemA1Ox/IaIEp7w9x1vfQQw/TEsI+pWE6K1of02jXlg7icQmdvTR3aU6nPw7AHHlIHZU5KKanQEuxjJeD+9xxk5KYHQ2UzuPDQaaRRXZV9aqQ9vCEsjdDY7nI61THUpfTrbM6WXAqk0C5jeX6qnDZoiWoVmQZkPGW48k3sCgYEAwpBfaKAj9AXBpl0ycwfWR+8Ndx4Ka+TcbndnP5tS85llwvqc4jpNni7pz7eox1b89UxFKaUG7lkzZQO2t3num2Sqm99J5mJfVAFWlZNAmRaL4dfqJu68JeE5TtwJDjrdhodao3do05UI4PzGC93vwo8jnFWH/FEdNdZZhoevLUUCgYEAqZdnl1GliT2k0aT70K3EVkvEgVutGnvAQZQLqxG27j0pdrk5Xj2svw+fJ78mNidlS7jeIldZtU/cFtYSyCurdonI2I4u94Q1eCdxQrhVp5D4DbbNJpy2Yu0zV5yuuITOIfivCzY8sM0gnLOfWSgm7bAmujDjn3FIuWSbiynww98CgYEAoW66ywu8aRdxosDHQCxrfgn6KTCSww0EXN/TmjIdNKO9jHb2PrrTdgFE3KVtc+BYSIt9A127D36RpynarAeOk/6FlIlDPtW2dPQbTEX+nkbXz46f6KfDEsb6DtWA6f6rmZiq+uDz6EJLOKpjBKuj6NFtYaSSDSecTfRJGddw4OUCgYA99/yqbG0Zy9EOkb45kWes5lAU8lKoSoB8mVWm0gPhQJPOryaswqmgemwwRqHXBxnochCWyr3stqD7sf7q1t41JDJW7KEU9oU8mnLnewciblVrTIqBJT/FuLMTJs3vzefDhhX4mR/JIFV8RnnJdYTTDyThguPTE/ZqyIznVJv87A=='; //生成公钥 $pubPem = chunk_split($publicKey,64,"\n"); $pubPem = "-----BEGIN PUBLIC KEY-----\n" . $pubPem . "-----END PUBLIC KEY-----\n"; $pu_key = openssl_pkey_get_public($pubPem); if ($pu_key){ $create = file_put_contents('public.pem', $pubPem); if ($create){ echo '生成公钥成功'."\n"; }else{ echo '生成公钥失败'."\n"; } }else{ echo '公钥格式不正确'."\n"; } //生成私钥 $priPem = chunk_split($privateKey,64,"\n"); $priPem = "-----BEGIN RSA PRIVATE KEY-----\n" . $priPem . "-----END RSA PRIVATE KEY-----\n"; $pi_key = openssl_pkey_get_private($priPem); if ($pi_key){ $create = file_put_contents('private.pem', $priPem); if ($create){ echo '生成私钥成功'."\n"; }else{ echo '生成私钥失败'."\n"; } }else{ echo '私钥格式不正确'."\n"; } ``` 执行之后会在所在文件夹生成private.pem和public.pem文件 原文转自:http://www.jeeinn.com/2019/01/720/ ,原文的代码倒数第二行写错了

php 判断一个ip地址是否是内网ip的函数

2020-02-23 00:36:00
22

```php public function isInternalIp($ip){ $ip = ip2long($ip); $net_a = ip2long('10.255.255.255') >> 24; //A类网预留ip的网络地址 $net_b = ip2long('172.31.255.255') >> 20; //B类网预留ip的网络地址 $net_c = ip2long('192.168.255.255') >> 16; //C类网预留ip的网络地址 return $ip >> 24 === $net_a || $ip >> 20 === $net_b || $ip >> 16 === $net_c; } ``` 转自:https://segmentfault.com/q/1010000002489259 中vissong的回答

laravel项目部署到服务器后要修改的目录权限

2020-02-22 16:18:26
35

laravel安装好之后,storage和bootstrap/cache和public/uploads/这三个目录需要读写权限才可以正常使用 我的web服务器是nginx,用户名是www 所以需要 ```bash cd /path/to/laravel chown -R www:www storage bootstrap/cache public/uploads/ ```

laravel框架中根据创建年月日汇总统计每天的金额

2019-12-27 00:38:45
119

按照年月日统计一个数据表中amount字段的总金额 amount为收入字段 ```php public function groupAmount($condition, $field='amount') { $records = self::selectRaw("SUM({$field}) as total_amount,DATE_FORMAT(created_at,?) AS y,DATE_FORMAT(created_at,?) AS ym,DATE_FORMAT(created_at,?) AS ymd",['%Y','%Y-%m','%Y-%m-%d']) ->where($condition)->groupBy(['y', 'ym', 'ymd'])->get()->toArray(); $yearArr = []; $monthArr = []; $dayArr = []; array_map(function($payOrder) use (&$yearArr, &$monthArr, &$dayArr){ $yearArr[$payOrder['y']][] = $payOrder['total_amount']; $monthArr[$payOrder['ym']][] = $payOrder['total_amount']; $dayArr[$payOrder['ymd']][] = $payOrder['total_amount']; },$records); $year = array_map(function ($oneArr){ return array_sum($oneArr); },$yearArr); $month = array_map(function ($oneArr){ return array_sum($oneArr); },$monthArr); $day = array_map(function ($oneArr){ return array_sum($oneArr); },$dayArr); return compact('year','month','day'); } ``` 返回结果为: ```php array(3) { ["year"]=> array(2) { [2019]=> int(2311210) [2020]=> int(39600) } ["month"]=> array(3) { ["2019-11"]=> int(84800) ["2019-12"]=> int(2226410) ["2020-01"]=> int(39600) } ["day"]=> array(9) { ["2019-11-13"]=> int(84800) ["2019-12-17"]=> int(1118410) ["2019-12-18"]=> int(112000) ["2019-12-23"]=> int(783000) ["2019-12-24"]=> int(100000) ["2019-12-26"]=> int(113000) ["2020-01-02"]=> int(1600) ["2020-01-10"]=> int(33000) ["2020-01-13"]=> int(5000) } } ```

列表为空