Think/Model/ViewModel.php
public function getTableName()
    {
        if (empty($this->trueTableName)) {
            $tableName = '';
            foreach ($this->viewFields as $key => $view) {
                // 获取数据表名称
                // 添加实际表名定义支持 可以实现同一个表的视图
                if (isset($view['_table'])) {
                    $tableName .= $view['_table'];
                    $prefix = $this->tablePrefix;
                    $tableName = preg_replace_callback(
                        "/__([A-Z_-]+)__/sU",
                        function ($match) use ($prefix) {
                            return $prefix.strtolower($match[1]);
                        },
                        $tableName
                    );
                } else {
                    $class = $key.'Model';
                    $Model = class_exists($class) ? new $class() : D($key);
                    $tableName .= $Model->getTableName();
                }
                // 表别名定义
                $tableName .= !empty($view['_as']) ? ' '.$view['_as'] : ' '.$key;
                // 支持ON 条件定义
                $tableName .= !empty($view['_on']) ? ' ON '.$view['_on'] : '';
                // 指定JOIN类型 例如 RIGHT INNER LEFT 下一个表有效
                $type = !empty($view['_type']) ? $view['_type'] : '';
                $tableName .= ' '.strtoupper($type).' JOIN ';
                $len = strlen($type.'_JOIN ');
            }
            $tableName = substr($tableName, 0, -$len);
            $this->trueTableName = $tableName;
        }

        return $this->trueTableName;
    }
public function getTableName()
    {
        if (empty($this->trueTableName)) {
            $tableName = '';
            foreach ($this->viewFields as $key => $view) {
                // 获取数据表名称
                // 添加实际表名定义支持 可以实现同一个表的视图
                if (isset($view['_table'])) {
                    $tableName .= $view['_table'];
                    $prefix = $this->tablePrefix;
                    $tableName = preg_replace_callback(
                        "/__([A-Z_-]+)__/sU",
                        function ($match) use ($prefix) {
                            return $prefix.strtolower($match[1]);
                        },
                        $tableName
                    );
                } else {
                    $class = $key.'Model';
                    $Model = class_exists($class) ? new $class() : D($key);
                    $tableName .= $Model->getTableName();
                }
                // 表别名定义
                $tableName .= !empty($view['_as']) ? ' '.$view['_as'] : ' '.$key;
                // 支持ON 条件定义
                $tableName .= !empty($view['_on']) ? ' ON '.$view['_on'] : '';
                // 指定JOIN类型 例如 RIGHT INNER LEFT 下一个表有效
                $type = !empty($view['_type']) ? $view['_type'] : '';
                $tableName .= ' '.strtoupper($type).' JOIN ';
                $len = strlen($type.'_JOIN ');
            }
            $tableName = substr($tableName, 0, -$len);
            $this->trueTableName = $tableName;
        }

        return $this->trueTableName;
    }
得到完整的数据表名

@return string