Sur*_*tap 4 php laravel laravel-livewire laravel-8 laravel-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;">
Run Code Online (Sandbox Code Playgroud)
这也让我很焦虑,但我想我找到了解决方案:正如@georgy-malanichev 所说,您只能从Livewire组件内部(而不是从Blade组件或任何其他自定义组件内部)调用 Livewire 方法。
鉴于您正在尝试使用 inside 组件resources/views/dashboard.blade.php
,解决方案是:
artisan make:livewire MyDashboard
<x-app-layout>
,并</x-app-layout>
在dashboard.blade.php
并粘贴到views/livewire/my-dashboard.blade.php
@livewire('my-dashboard')
内部x-app-layout
标签和鲍勃是你的叔叔(应该开始工作)为了帮助您了解发生了什么事情,如果你看的模式组件的源代码,你会看到这样一行:show: @entangle($attributes->wire('model')),
。我不确定如何准确描述它的作用,但是,本质上,@entangle()
它期待“模型”Livewire 对象的一个实例,但它没有找到。
它没有找到它,因为它是从非 livewire 组件调用的。一旦你把它放在一个 Livewire 组件中,它就会开始工作。
我希望额外的细节能让事情更清楚。
小智 1
我遇到了同样的错误,但就我而言,事实是我在 LiveWire 组件x-data="{ open: @entangle('showDropdown') }"
之外。一旦我将它移动到组件模板中它应该在的位置,问题就消失了。
归档时间: |
|
查看次数: |
2204 次 |
最近记录: |