redbastie/laravel-livewire-helpers

Laravel Livewire的一些实用助手。

1.0.3 2021-01-19 16:32 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:03 UTC


README

此包不再维护。请考虑在此处使用我的最新包:https://github.com/redbastie/tailwire

Laravel Livewire 辅助工具

为 Laravel & Livewire 提供一些实用助手。

安装

通过 composer 安装

composer require redbastie/laravel-livewire-helpers

带数据

此特质允许你在组件中使用 $data 数组属性,这样你不需要为每个表单输入创建单独的属性。

数据建模

<input type="email" wire:model.defer="data.email">
@error('email')<p class="text-red-600">{{ $message }}</p>@enderror

数据验证

$this->validateData([
    'email' => ['required', 'email'],
]);

获取数据(null 安全,使用点表示法进行嵌套数组)

$this->data('email');

无限滚动

此特质在你的组件中实现无限滚动。允许用户无限滚动查询模型列表非常有用。此特质需要一些设置。

首先,在 resources/app.js 文件中要求 infinite-scroll(确保如果没有已经在 watch,请运行 npm run

require('./bootstrap');
require('../../vendor/redbastie/laravel-livewire-helpers/resources/js/infinite-scroll');

在你的组件中,使用 $this->query()->paginate($this->perPage) 获取模型结果,并将 infiniteScroll 布尔值传递到视图中

public function render()
{
    return view('livewire.vehicles', [
        'vehicles' => $this->query()->paginate($this->perPage),
        'infiniteScroll' => $this->infiniteScroll(),
    ]);
}

你的组件需要实现一个 query() 方法,该方法返回模型构建器查询

public function query()
{
    return Vehicle::query()->orderBy('id');
}

最后,在视图底部包含 infinite-scroll

@include('laravel-livewire-helpers::infinite-scroll')