<style id="KnKFh"></style>

            1. <ruby id="KnKFh"></ruby>

              1. <embed id="KnKFh"></embed><strike id="KnKFh"><textarea id="KnKFh"></textarea></strike><ol id="KnKFh"></ol>
                <tr id="KnKFh"><noscript id="KnKFh"><canvas id="KnKFh"><dd id="KnKFh"></dd></canvas></noscript><legend id="KnKFh"></legend><cite id="KnKFh"><colgroup id="KnKFh"><option id="KnKFh"><mark id="KnKFh"><tfoot id="KnKFh"><strike id="KnKFh"><aside id="KnKFh"><abbr id="KnKFh"></abbr></aside><progress id="KnKFh"></progress></strike></tfoot></mark></option></colgroup></cite><progress id="KnKFh"><datalist id="KnKFh"><textarea id="KnKFh"></textarea></datalist></progress></tr><thead id="KnKFh"></thead>

              2. 模型的column方法

                浏览:1408 发布日期:2020/03/30
                版本:TP 6.0User::column('name');
                User::column('name', 'name');

                // 都是返回 关联数组 ['张三'=>'张三', '李四'=>'李四']
                以前TP5返回的是索引数组,User::column('name');
                // 索引数组 [0=>'张三', 1=>'李四']

                User::column('name', 'name');
                // 关联数组 ['张三'=>'张三', '李四'=>'李四']
                导致的问题,如果数据里有同名的用户,查出的数据就会与预期不一致。// TP5 ['张三', '张三', '李四']

                // TP6 ['张三', '李四']
                虽然TP5与TP6执行的SQL都为 SELECT name FROM user;
                但TP6的结果 等同于强制加了 DISTINCT 的 SELECT DISTINCT name FROM user;原因
                think\db\PDOConnection中的第1139行if (empty($resultSet)) {
                            $result = [];
                        } elseif (('*' == $column || strpos($column, ',')) && $key) {
                            $result = array_column($resultSet, null, $key);
                        } else {
                            $fields = array_keys($resultSet[0]);

                // 第1139行
                            $key    = $key ?: array_shift($fields);

                            if (strpos($column, ',')) {
                                $column = null;
                            } elseif (strpos($column, '.')) {
                                list($alias, $column) = explode('.', $column);
                            }

                            if (strpos($key, '.')) {
                                list($alias, $key) = explode('.', $key);
                            }

                            $result = array_column($resultSet, $column, $key);
                        }
                当$key为空时,就使用了$column充当数组的键

                建议改为if(empty($key)){
                    $key = null;
                } else {
                    $key = array_shift($fields);
                }

                ...
                $result = array_column($resultSet, $column, $key);
                这样,如果想要现在的形式,就明确指定$key
                User::column('name', 'name');

                如果,只关心value,key用自然数填充,就简单的
                User::column('name');
                评论(
                后面还有条评论,点击查看>>