如何使用 Jetstream 和 Livewire 获取对象数据

Posted

技术标签:

【中文标题】如何使用 Jetstream 和 Livewire 获取对象数据【英文标题】:How to get object data with Jetstream and Livewire 【发布时间】:2021-12-23 18:45:06 【问题描述】:

我与Laravel 8 Jetstream || Undefined variable: _instance (View: C:\xampp\htdocs\veye-website\resources\views\vendor\jetstream\components\modal.blade.php 有类似的问题,从这里我了解到 Livewire 方法在 Livewire 组件中工作。

但是,如何使用 Jetstream 组件获取数据?

我的工作(例如,我正在创建另一个用户页面):

    在resource/views/vendor/jetstream/components下创建users.blade.php,包含以下sn-p
@foreach($users as $user)
    <tr>
        <td>
             $user->name 
        </td>
        <td>
             $user->email 
        </td>
    </tr>
@endforeach
    用简单的代码创建 app\Http\Livewire\userlist.php
public function render()
    
        $users = User::all();
        return view('user', compact("users"));
    

我知道 (2) 将它放在 Livewire 下有问题。但是,如果不将 users.blade.php 移动到 views\livewire 组件,还能怎么做。我也在使用 users.blade.php 以便可以调用&lt;x-jet-users&gt;

【问题讨论】:

【参考方案1】:

在你的 user.blade.php 中,使用指令包含 livewire 组件

@livewire('user-component-from-livewire')

在 livewire 组件的刀片中添加您在上面处理的代码

// at livewire/user-component-from-livewire.blade.php
<div>
@foreach($users as $user)
    <tr>
        <td>
             $user->name 
        </td>
        <td>
             $user->email 
        </td>
    </tr>
@endforeach
</div>

// in component
public function render()

   return view('user-component-from-livewire', ['users' => User::all()]);

所以,你总是渲染 jetstream 组件,它会调用嵌套的 livewire 相关

【讨论】:

现在有错误 bootstrap/cache 目录必须存在且可写。需要调查一下

以上是关于如何使用 Jetstream 和 Livewire 获取对象数据的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 与 JetStream 和 LiveWire 不渲染(尾风)

在 Laravel 8 Jetstream 的 Blade 组件中绑定 Livewire 属性

Laravel Jetstream Livewire 未定义变量

使用 Laravel Livewire 和 Laravel Fortify 进行登录

Laravel Livewire 分页

使用 Laravel 8(和 Jetstream)将自定义数据传递到 login.blade.php