theme: github
redis
``` $redis = \Yii::$app->redis; $res = $redis->get('ttp:00d716905c8ed414aa0103ba17815795'); $res = unserialize($res); return $this->asJson($res);
$redisKey = "yixinzuqiu:houtai:messge:infoMessage:{$id}"; $data = Redis::connection('plan')->get($redisKey); if ($data){ $data = jsondecode($data); return jsonencode(['data' => $data]); }
Redis::connection('plan')->setex($redisKey, 60, json_encode($info)); ```
MSQYL
输出刚刚执行的 SQL
```
use Hyperf\DbConnection\Db; use Hyperf\Utils\Arr; use App\Model\Book;
// 启用 SQL 数据记录功能 Db::enableQueryLog();
$book = Book::query()->find(1);
// 打印最后一条 SQL 相关数据 var_dump(Arr::last(Db::getQueryLog())); ```
自动管理数据库事务
你可以使用 Db
的 transaction
方法在数据库事务中运行一组操作。如果事务的闭包 Closure
中出现一个异常,事务将会回滚。如果事务闭包 Closure
执行成功,事务将自动提交。一旦你使用了 transaction
, 就不再需要担心手动回滚或提交的问题:
```
Db::transaction(function () { Db::table('user')->update(['votes' => 1]);
Db::table('posts')->delete();
}); ```
子查询,原生语句执行
$changeIndexList = Db::select(' SELECT * FROM (SELECT `id`,`match_id`,`sample_data`,`odds_index`,`type` FROM `bifen`.`bifen_index_discrete` WHERE `match_id` = ? ORDER BY `id` DESC ) a GROUP BY `type` ORDER BY `id` DESC,type DESC', [$matchId]);
orwhere whereor
$db = $db->whereIn("home_team_id", $teamIdSearch) ->orWhere(function ($query) use ($teamIdSearch, $startTime, $endTime, $competitionId) { $query->whereBetween("match_time", [$startTime, $endTime]) ->whereIn("away_team_id", $teamIdSearch); if ($competitionId) { $query->where("competition_id", $competitionId); } });
定义空对象
$result = new \stdClass();
获取记录某值
$value->gzh_name = WechatIndex::query() ->where('id', $value->gzh_id) ->value('name');
数组idarr
``` $userIdArray = StoreUser::query() ->where('isregister', 1) ->pluck('userid') ->toArray(); $userIdArray = array_unique($userIdArray);
$compensationList = Compensation::query() ->select('id', 'similar') ->whereIn('id', $matchIdArr) ->get()
->toArray(); ```
$midArr = array_unique(array_column($drfinpayzb1List, 'mid')); $ids = "'" . implode("','", $midArr) . "'"; $drfinpayList = m('drfinpay')->getall("id in (" . $ids . ")", 'id,expensetype');
//创建人 $userIdArray = array_unique(array_column($list, 'created_user_id')); $userList = (new ZucaiBackendUser())->getListByIdArr($userIdArray);
```
declare (strict_types=1);
namespace App\Model;
use HyperfDbConnection\Model\Model;
class ZucaiBackendUser extends Model { /* * The table associated with the model. * * @var string */ protected $table = 'zucai_backend_user'; /* * The attributes that are mass assignable. * * @var array */ protected $fillable = [];
public function getListByIdArr($idArr)
{
$list = self::select('id', 'user_name')
->whereIn('id', $idArr)
->get()
->toArray();
$data = [];
foreach ($list as $value) {
$data[$value['id']] = $value;
}
return $data;
}
} ```