Laravel 7无法解析依赖项- Blade组件

3

我正在使用新的Laravel 7 Blade组件。我有一个新组件,它可以打开一个Bootstrap删除模态框,如下所示:

<x-delete-modal 
    :description="$task->TaskDescription" 
    :id="$task->TaskID" 
    :route="$routeForDeleteModelModal" 
    :modelInstance="$task" 
/>

但是我遇到了以下错误:

无法解析依赖项,类App\View\Components\DeleteModal的参数# 0 [$description]。

该组件如下所示:

 <!-- Delete Model Modal -->
 <div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true">
    hello
</div>

为了确保这不是模态框的内容问题,我已经把除了“hello”以外的所有东西都删除了。
DeleteModal类有4个变量:
public $description;
public $id;
public $route;
public $modelInstance;

它的构造方式如下:

public function __construct($description, int $id, $route, $modelInstance)
{
    $this->description = $description;
    $this->id = $id;
    $this->route = $route;
    $this->modelInstance = $modelInstance;
}

我不确定是什么导致了这个错误 - 我已经尝试确认所有的拼写都是正确的,将它缩减为只有描述,还在构造函数中使用了 dd,但它甚至在那之前就失败了。

1个回答

4

信不信由你,但问题并不在于模态框,而是在它上面的HTML注释。

我的注释是:

<!-- 
    ...... lots of text

    Please make sure to only include '<x-delete-modal ... />' after closing a form, as this component 
    contains a form, and HTML does not support nested form elements.
-->

有趣的是,注释中包含'<x-delete-modal ... />'会导致程序完全崩溃。这意味着注释在某种程度上被编译了。如果有人能解释为什么会发生这种情况,我会很感兴趣。
当从组件中删除'<x-delete-modal ... />'时,该组件将按预期工作。

3
HTML注释不是Blade注释,因此它仍将解析找到的标签,因为HTML注释没有上下文,它只是文本(我猜)。 - lagbox
因此,请尝试在Blade中使用{{-- ... --}}进行注释。 - AlexioVay
我遇到了同样的问题,而且发生在没有注释的blade文件中。删除所有空格似乎可以解决这个问题。这绝对是Laravel中的一个bug。 - Jay Bienvenu
1
我遇到了同样的错误,但是我的情况是在组件属性命名时使用了下划线“_”。我只需将其转换为驼峰式命名法,问题就解决了。 - apolinux

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接