这是我的代码:
@foreach($comments->where("id_answered_comment", null) as $comment)
<x-comment.comment :comment="$comment">
@php
addComment($comment, $comments->where("id_answered_comment", $comment->id), $comments);
@endphp
</x-comment.comment>
@endforeach
它在同一文件中调用以下函数:
@php
function addComment($comment, $replies, $fullCommentList){
if(!$replies->isEmpty()){
@endphp
<x-comment.comment :comment=$replies[0]>
</x-comment.comment>
@php
}
}
@endphp
运行此命令后,我收到错误“未定义的变量:__env”,但是,该错误似乎是由函数内的组件“x-comment.comment”引起的,因为删除它后编译器不会抛出任何错误例外。 (但这并不能解决逻辑问题)。
调试器还告诉我异常发生在第 8 行,但该行完全是空的。
到目前为止我已经尝试过跑步
`php artisan 缓存:清除
php artisan 视图:清晰`
但这些都不起作用。
我也尝试回显该组件,但它回显了文字 x-comment.comment 标签本身。
您似乎遇到了 Blade 组件及其在
@php
指令中使用方式的问题。不要在整个函数中使用 @php
,而是尝试在函数中使用 Blade @foreach
指令和 @endforeach
。这是代码的修改版本:
@foreach($comments->where("id_answered_comment", null) as $comment)
<x-comment.comment :comment="$comment">
@foreach($comments->where("id_answered_comment", $comment->id) as $reply)
<x-comment.comment :comment="$reply"></x-comment.comment>
@endforeach
</x-comment.comment>
@endforeach