数据库表前缀设置Bug,TP版本5.0

浏览:2527 发布日期:2017/10/26 分类:ThinkPHP5专区
    // +----------------------------------------------------------------------
    // | 远程数据库
    // +----------------------------------------------------------------------
    'db_config_remote'=> [
    
        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => 'rm-bp1h205f36fv8pecto.mysql.rds.aliyuncs.com',
        // 数据库名
        'database'        => 'test',
        // 用户名
        'username'        => 'root',
        // 密码
        'password'        => 'JB6MUn64xICo',
        // 端口
        'hostport'        => '',
        // 连接dsn
        'dsn'             => '',
        // 数据库连接参数
        'params'          => [],
        // 数据库编码默认采用utf8
        'charset'         => 'utf8',
        // 数据库表前缀
        'prefix'          => 'acc_',
        // 数据库调试模式
        'debug'           => true,
        // 是否严格检查字段是否存在
        'fields_strict'   => true,
        // 数据集返回类型
        'resultset_type'  => 'array',
        // 时间字段取出后的默认时间格式
        'datetime_format' => 'Y-m-d H:i:s',
        // 是否需要进行SQL性能分析
        'sql_explain'     => false
    ]
远程数据库在应用config.php文件当中的数据库连接配置如上。
当我有一个数据模型相应的数据库表的前缀和上述数据库连接默认的配置不一样的时候,下面的文件就会在查询过程当中报错,显示acc_character表不存在:<?php
namespace app\index\model;

use think\Model;

class Character extends Model {
    
    protected $connection = 'db_config_remote';    //默认前缀acc_
    
    //重写父类initialize()
    protected function initialize(){
        
       parent::initialize();
        
       $this->table = 'd_character';   //前缀为d_
    }
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>