阿木

Results 17 issues of 阿木

现在有这样的content: {"a": "1", "b", "2", "c": "3"} 我想一次性更新a、c,我发现目前 Db::table('xxx')->json(['content'])->where('name', 'ceshi') ->update([ 'content->a' => '我改了', 'content->c' => '我改了1111' ]); 这样是不行的,PDOConnection.php(1285) 会这这里报错, 打印了一下发现,使用的是JSON_SET,只能替换一个 【而很多时候我想替换同时多个,总不能每次都先读取吧? 有很多时候是直接更新的】 希望官方解决一下, 可以通过json_replace进行多个替换的 或者 多个json_set 【建议使用多个json_set,在没有的情况可以自动创建,防止出错】 不然只替换一个太鸡肋了

ORM

/** * 获取和设置配置参数 * @param string|array $name 参数名 * @param mixed $value 参数值 * @return mixed */ function config($name = '', $value = null) { if (is_array($name)) { return Config::set($name,...

`$ceshi = 11; $ceshi1 = 22; Db::query("update xxx set content = json_replace(`content`, '$.day', JSON_ARRAY(:ceshi, :ceshi1)) where name = 'xxx'", [ 'ceshi' => $ceshi, 'ceshi1' => $ceshi1 ]);` 为题所在: PDOConnection.php(bindValue方法中)$result =...

比如: 'in' => [1,2,3] 或 'in' => '1,2,3' 而还有些requreIf只能用string方式 都统一一下吧,我习惯都用数组方式,看起来方便 说起来string方式还需要explode一次感觉没啥必要的

enhancement

date_parse_from_format这个函数 验证m-d H:i 没有前导零 也能通过,这个函数不好用

建议增加应用名称归类标识 在传统fpm下没有问题,会每次请求后重新加载 但是在cli下,会一直在内存中,这将导致一些【多应用】下的配置都混在一起, 比如A应用访问时候 会有B应用的配置,访问B的时候 又有A 的标识 目前config类中没有剔除,建议不增加这个功能,而是额外增加标识,这样可以不用重复加载 说起来这也算是bug,依赖每次请求自动清除数据这种做法 感觉会为以后埋下后患

.env中: xxx[] = xxxxxx 获取xxx时报错: Fatal error: Uncaught TypeError: strtoupper(): Argument #1 ($string) must be of type string, int given in /vendor/topthink/framework/src/think/Env.php:118 ================== [qqq] xxx[] = xxxxxx 这么写没有问题,可是我不想有qqq ![image](https://github.com/top-think/framework/assets/73475361/0b6589bf-8df6-4654-bdcb-2282b1d2463c)

![1a9bfdc2deb217d82e74ce3201274a7a7af52820 webp](https://github.com/top-think/think-orm/assets/73475361/d5d9b827-1c6c-485d-9213-f77e25ca6586) 如图,where没有自动设置别名

with() 关联进来的表字段会作为一个属性打包进来, 可是,withJoin在使用驼峰命名的时候 确是 合并到了主表, 而在不是驼峰命名的时候 又 变为 一个属性打包进来了

当find为空时会输出null,这时我在->find()->hidden()是会报错的; 但是在->select()->hidden()没有问题 所以,为何不能在find为空时,如果使用hidden可以自动返回null, 而不是Call to a member function hidden() on null 输出统一比较好,我们去自己判断是多余的操作