Laravel 8 Jetstream ||未定义的变量:_instance(视图:C:\ xampp \ htdocs \ veye-website \ resources \ views \ vendor \ jetstream \ components \ modal.blade.php

时间:2020-10-20 05:19:44

标签: php laravel laravel-8 laravel-livewire jetstream

我试图使用Laravel 8 Livewire Modal Popup进行数据输入,并转到另一页。但是我无法定义变量_instance并且无法理解它。

@entangle($ attributes-> wire('model'))

当我从views / vendor / jetstream / components / modal.blade.php中删除此错误时,此行会产生此错误。错误会消失。

第34行。

<div id="<?php echo e($id); ?>" x-data="{ show: <?php if ((object) ($attributes->wire('model')) instanceof \Livewire\WireDirective) : ?>window.Livewire.find('<?php echo e($_instance->id); ?>').entangle('<?php echo e($attributes->wire('model')->value(

    x-show="show"

    x-on:close.stop="show = false"

    x-on:keydown.escape.window="show = false"

    class="fixed top-0 inset-x-0 px-4 pt-6 sm:px-0 sm:flex sm:items-top sm:justify-center"

    style="display: none;">

2 个答案:

答案 0 :(得分:0)

我遇到了同样的错误,但就我而言,这是我的LiveWire组件在1.7462298e-10 之外的事实。将其移到组件模板中的正确位置后,问题就消失了。

答案 1 :(得分:0)

这也引起了我的极大焦虑,但我想我找到了解决方案:正如@ georgy-malanichev所说,您只能从 Livewire 组件内部调用Livewire方法(而不是< / em>从 Blade 组件或其他任何自定义组件中获取。

鉴于您尝试使用resources/views/dashboard.blade.php中的组件,解决方案是:

  1. 使用artisan make:livewire MyDashboard
  2. 创建带电组件
  3. 剪切<x-app-layout></x-app-layout>dashboard.blade.php之间的所有内容并将其粘贴到views/livewire/my-dashboard.blade.php
  4. @livewire('my-dashboard')标签内添加x-app-layout,Bob是您的叔叔(应该开始工作)

为帮助您了解发生了什么,如果您查看模态组件的源代码,则会看到类似show: @entangle($attributes->wire('model')),的行。我不确定如何确切地描述它的作用,但是本质上,@entangle()期望“模型” Livewire对象的一个​​实例,但找不到一个。

找不到它,因为它是通过非带电导线组件调用的。将其放入Livewire组件中后,它将开始工作。

我希望其他细节可以使事情变得更清楚。