php - Laravel 缓存视图中的 PHP League Commonmark $environment 错误
问题描述
将 Laravel 项目升级到 PHP8 后,我经常收到此错误:
Passing an $environment into the "League\CommonMark\CommonMarkConverter" constructor is deprecated in 1.6 and will not be supported in 2.0; use MarkdownConverter instead
堆栈跟踪显示它是由缓存视图文件中的这一行触发的:
<?php echo e(Illuminate\Mail\Markdown::parse($slot)); ?>
我已经多次删除了所有缓存的视图(我认为那里可能有一些旧的缓存视图),但这并没有解决它。
不确定这是否应该是报告的错误,因为这可能是在 Laravel 框架中修复的情况,但在升级到 PHP8 之前我从未遇到过这个错误,所以我认为它与此有关。
解决方案
我的头也撞到了这个。我一直在对降价文件进行更改,但它们从未出现过——就像 Laravel 指向错误的地方一样。它是...
我正在开发一个升级的 Laravel 应用程序(IE 我从 5.x 开始并且随着时间的推移进行了升级),因此有两个潜在的问题。
首先,在ip/config/mail.php
: 您可能必须实际创建降价路径。如果您在 markdown 之前发布了可邮寄的内容,则整个 markdown 邮件设置都将丢失。你可以从 git repo 中提取它们,或者为了方便起见从这里提取它们:
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
如果您之前发布了这些邮件文件,则第二个潜在问题(尽管在您的情况下不太可能),HTML 目录中的 Laravel 布局文件有or
操作符,这会阻塞。将这三个运算符更改为??
.
也许这会对您有所帮助,具体取决于您从哪里开始:)
推荐阅读
- python - 如何有效地从字符串中提取子字符串(带 - 或 _)
- linux - 哪个进程发送 SIGKILL 并终止我的 Namecheap 服务器上的所有 SSH 连接?
- javascript - 在Javascript中的if块中动态放置条件
- java - 使用 android studio java Recycler 视图从 Firebase 实时数据库中删除节点
- c# - MediatR 定制行为管道
- java - 多变量函数的数值微分
- c++ - 构造实例的最佳实践
- javascript - 将 prop 从中间组件传递到 props.children
- c++ - 如何使用 gdb 在 vscode 中查看结构的非漂亮版本?
- javascript - 如何访问此 javascript 对象以进行动态 src 更新(plyr html5