未定义的变量:Laravel 8 上的 __env

问题描述 投票:0回答:1

这是我的代码:

@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 标签本身。

laravel laravel-8 laravel-blade
1个回答
1
投票

您似乎遇到了 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
© www.soinside.com 2019 - 2024. All rights reserved.