bastinald/laravel-livewire-model

Laravel Livewire 数据模型特性。

2.0.2 2021-08-31 09:31 UTC

This package is auto-updated.

Last update: 2024-09-11 09:54:31 UTC


README

本包包含一个特性,使得 Laravel Livewire 表单数据模型操作变得简单。不再需要为每个表单输入创建 Livewire 组件属性。所有表单数据都将放置在 $model 属性数组中。

文档

安装

通过 composer 安装此包

composer require bastinald/laravel-livewire-model

使用方法

WithModel 特性

WithModel 特性添加到您的 Livewire 组件中

class Login extends Component
{
    use WithModel;
    
    //
}

获取模型数据

以数组形式获取所有模型数据

$array = $this->getModel();

获取单个值

$email = $this->getModel('email');

获取特定值的数组

$credentials = $this->getModel(['email', 'password']);

设置模型数据

设置单个值

$this->setModel('name', 'Kevin');

使用数组设置值

$this->setModel([
    'name' => 'Kevin',
    'email' => 'kevin@example.com',
]);

使用 Eloquent 模型数据设置值

$this->setModel(User::first());

绑定模型数据

只需在 wire:model 属性前加上 model.

<input 
    type="email" 
    placeholder="{{ __('Email') }}"
    class="form-control" 
    wire:model.defer="model.email"
>

验证模型数据

使用 validateModel 方法验证模型数据

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

此方法与 Livewire 的 validate 方法类似,因此如果您愿意,可以在单独的 rules 方法中指定您的规则。