webman结合webman-admin,其中的database.php设定表前缀
在设定表前缀的情况下,webman-admin的TableController会出现前缀重叠的情况
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => env('MYSQL_DRIVER', 'mysql'),
'host' => env('MYSQL_HOST', '127.0.0.1'),
'port' => env('MYSQL_PORT', '3306'),
'database' => env('MYSQL_DATABASE', 'db_webman'),
'username' => env('MYSQL_USERNAME', 'root'),
'password' => env('MYSQL_PASSWORD', 'root'),
'charset' => env('MYSQL_CHARSET', 'utf8mb4'),
'collation' => env('MYSQL_COLLATION', 'utf8mb4_general_ci'),
'prefix' => env('MYSQL_PREFIX', 'wa_'),
'strict' => true,
'engine' => null,
],
],
];
在/vendor/illuminate/database/Schema/Builder.php 第612行
$prefix = $this->connection->getConfig('prefix_indexes')
? $this->connection->getConfig('prefix')
: '';
出现读取数据库的前缀配置,
但是在/plugin/admin/app/controller/TableController.php文件下
167行并没有关联表前缀的配置注入
Util::db()->statement("ALTER TABLE `$table_name` COMMENT $table_comment");
1个回答
webman-admin 设计的时候没有设置前缀,设置前缀后会导致非前缀的表读取不到。
这就很尴尬,是统一表前缀有瑕疵还是什么问题,感觉这样开发不友好
数据库用的laravel的库,瑕疵肯定没有。
webman-admin 数据库管理部分设计的时候要求能够管理数据库里的所有表。如果设置了前缀,就只能管理前缀的表。
比如你有一个现有项目,没有前缀或者是其它前缀,装了webman-admin后,能够管理现有项目的表。如果加了前缀,就只能管理webman-admin项目的表。
那相当于webman-admin如果要当管理后台用,得把它改到适配表前缀设置,如果是老项目,那可能这个确实会很方便,感谢大佬解惑