我想使用foreach内的Livewire表单并带有如下动态键来获取错误消息:

<x-input-error class="mt-2" :messages="$errors->get('form.productData.product_variants.{{ $index }}.name')" />

但如果我设置的form.productData.product_variants.0.name条规则有任何错误,消息不会显示.

当我使用这样的静态密钥访问错误消息时,

<x-input-error class="mt-2" :messages="$errors->get('form.productData.product_variants.0.name')" />

显示错误消息.

如何在我的foreach循环中使用$index中的动态键来获取错误消息?

推荐答案

在Laravel Livewire中,您可以通过使用Livewire的$errors属性和getSecurBag()方法动态设置表单字段的错误键.以下是您可以实现这一目标的方法:

设置动态密钥是否存在错误:

<div>
    <input type="text" wire:model="username">
    @error($dynamicErrorKey) <span class="error">{{ $message }}</span> @enderror
</div>

在此示例中,$DynamicPaperKey表示动态错误键,您可以根据Livewire组件中的某些条件设置该键. 设置动态错误消息:

public function updatedUsername()
{
    if ($this->username === 'admin') {
        $this->addError($this->dynamicErrorKey, 'Username cannot be "admin"');
    }
}

在updatedHandler方法中,您可以根据一定条件动态设置指定错误键的错误消息. 初始化动态错误密钥:确保在Livewire组件中初始化$DynamicWRKey.

public $dynamicErrorKey = 'default_error_key';

您可以根据应用程序逻辑动态更新$DynamicWRKey的值. 通过遵循这些步骤,您可以根据您的特定要求动态设置Livewire组件中表单字段的错误键和消息.这使得处理表格验证错误时具有灵活性和自定义性.

Php相关问答推荐

为什么调用干预\映像引发错误驱动程序\GD\Driver not found?

保存PHP条带以备将来使用,不显示用户界面

与会者在WooCommerce中按购物车项目数量自定义 checkout 字段

Laravel;Composer安装突然返回选项快捷方式不能为空.

使用正则表达式搜索两个子字符串(没有重叠/共享字符)

根据未用于变体的产品属性隐藏WooCommerce发货方式

将下拉 Select 的值从WooCommerce后端保存并显示到前端

在WordPress中从CPT中删除插件

PHP-准备用于TCP套接字的数据包

如何在Laravel Model中自定义多个日期属性的日期格式?

哪里的表现能更好?

更改WooCommerce checkout 中的错误消息以获得不可用的送货方式

如何在自定义邮箱内容中获取WooCommerce订单项目的详细信息?

如何解决 Laravel 外键错误?

使用自定义插件中的 WooCommerce 模板发送自定义邮箱

woocommerce checkout 页面上的自定义字段

如何将文件上传添加到 WooCommerce 结帐?

如何设置Mailersend PHP API 模板变量?

如何通过额外的属性和本地化来使用 laravel 枚举

如何修复正则表达式以在换行符后查找非数值