搭建 laravel-admin报错

我们的项目后台需要接入laravel-admin 在这里我们选择了固定版本,1.8.11稳定的版本 但是在服务器运行

composer require encore/laravel-admin "1.8.11"

报错了,让我们看看这个错误 截屏2025-03-24 15.23.26.png

这应该强制Composer使用symfony/css-selector的6.x版本和tijsverkoyen/css-to-inline-styles的2.2.x版本,从而解决PHP版本不兼容的问题。

要解决此依赖冲突,需要调整软件包版本以兼容 PHP 8.1。以下是分步解决方案:

解决方法 降级 symfony/css-selector 至兼容版本

锁定 tijsverkoyen/css-to-inline-styles 到支持 Symfony 6 的版本

步骤说明 手动指定兼容版本组合 运行以下命令强制安装兼容版本:

composer require symfony/css-selector:^6.0 tijsverkoyen/css-to-inline-styles:^2.2.2

或通过 composer.json 调整依赖 在 composer.json 的 require 部分添加:

{
    "require": {
        "symfony/css-selector": "^6.0",
        "tijsverkoyen/css-to-inline-styles": "^2.2.2"
    }
}

然后更新依赖:

composer update symfony/css-selector tijsverkoyen/css-to-inline-styles --with-dependencies

解释 PHP 版本兼容:Symfony 7+ 需要 PHP 8.2,通过锁定 Symfony 组件到 6.x 系列保持对 PHP 8.1 的支持。

依赖链调整:Laravel 8 允许 tijsverkoyen/css-to-inline-styles 2.2.x,该版本兼容 Symfony 5/6,从而避免版本冲突。

强制版本解析:明确指定版本约束,引导 Composer 选择正确的依赖树。

执行这些步骤后,Composer 将安装兼容的组合,解决依赖冲突。

原本事情到这里应该结束的,但是并没有 让我们看看接下来的报错

截屏2025-03-24 16.19.04.png

原因分析:

carbonphp/carbon-doctrine-types 2.1.0与doctrine/dbal的某些版本存在冲突。

doctrine/dbal旧版本要求PHP 7.x,而我们的环境是PHP 8.1。

doctrine/deprecations版本不兼容导致进一步冲突。

最终解决方案: 允许Composer更新所有依赖: 使用--with-all-dependencies选项让Composer尝试解决版本冲突:

composer update --with-all-dependencies

然后

# 临时允许降级并更新关键包
composer config platform.php 8.1.32
composer require doctrine/dbal:^2.13.9 doctrine/deprecations:^0.5.3 --with-all-dependencies
composer require encore/laravel-admin:1.8.11

luffy博客
Please login to comment
  • latest comments
  • Total 0 comments