主题
常见问题
为什么项目安装成功之后无法访问
- 安装项目之后,打开 DEBUG,将
.env
的debug
设置为true
. - 不要直接访问 PHP 项目,即使你在配置完域名之后.
为什么权限添加之后没有生效
CatchAdmin 在用户登录之后,会将登录用户的权限信息缓存起来。所以需要刷新一下后台重新拉取信息。
常见错误
Cloud not Create token :strpos() expect parameter 1 to be string. array give 请检查 .env 文件是否生成了 jwt 密钥。如果没有,请执行
php think jwt:create
TIP
如果还是不行,请检查是否有 .env 文件
There are no commands defined in the "jwt" namespace.
解决方案有两个,均由于 Composer 升级导致的。
- 降低 composer 版本, composer self-update --rollback
- 升级 tp 核心版本,composer update 即可
TIP
目前推荐第一种,防止有其他包没有做适配工作。激进点可以选择第二种,毕竟 composer2 太香了。
为什么找不到 CatchAdmin 的 SQL 文件
CatchAdmin
摒弃了 SQL
形式的安装,采用了 Migration
建立数据表,数据表在每个模块都是独立。 具体可以查看模块下的 database
文件下的 migration
可以清晰看到每个模块的数据表的迭代情况
如何获取登录用户的信息
CatchAdmin
可以全局获取登录用户信息
php
request()->user()
// 获取用户角色
request()->user()->getRoles()
composer install 安装报错
如果遇到了 think service:discover handling the post-autoload-dump event returned with error code 255 错误
。
- 如果存在 composer.lock, 删除
vendor
文件夹以及删除composer.lock
文件,之后composer install
。 - 直接 composer update 即可
上线部署
优化自动加载的时候要去除 require-dev
的加载目录
composer dump-autoload --no-dev
出现权限问题
chmod(): Operation not permitted
需要改变运行用户, 找到 fpm 运行的用户组,然后使用下面命令,fpm
默认是 www-data
, 如果修改了用户,根据实际情况修改即可。
chown -R www-data:www-data catch/
出现路由未定义
- 检查
runtime\catch
目录下是否有缓存 - 检查对应的模块是否开启, module.json 文件
enable
字段
定义日期类型错误
Incorrect date value: ‘0000-00-00 00:00:00‘ for column ‘xxxx‘ at row 1
查看 sql_mode
变量
php
show variables like '%sql_mode%'
如果含有 NO_ZERO_IN_DATE, NO_ZERO_DATE
, 则去除。
set @@sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
变量最好配置 mysql 的 my.cnf
中,否则重启会失效
模型注释无法生成
首先移除
composer remove jaguarjack/file-generate --ignore-platform-reqs
在重新安装
composer require jaguarjack/file-generate:dev-master --ignore-platform-reqs