当使用 Livewire 在 Laravel Blade 中运行验证时,如何隐藏某些内容?
Posted
技术标签:
【中文标题】当使用 Livewire 在 Laravel Blade 中运行验证时,如何隐藏某些内容?【英文标题】:How do I hide something when a validation runs in Laravel Blade using Livewire? 【发布时间】:2021-09-08 14:45:12 【问题描述】:我的 Laravel 刀片中有一个输入类型的文件,我还在 livewire 中验证了image|max:1024
。问题是输入验证但它出错了,因为 Laravel Blade 显示的 img
不是图像的文件类型,所以我想在它没有达到验证时隐藏它。
<div class="pb-2">
@if ($header_image)
@error('header_image')
<span class="error"> $message </span>
@enderror
<img src=" $header_image->temporaryUrl() " width='50%'>
@else
<img src="url('storage/photos/'.$banner->header_image)" width='50%' />
@endif
</div>
我想隐藏带有temporaryUrl()
的那个。
【问题讨论】:
你到底要隐藏什么,输入元素还是错误包??? 我想隐藏 img 元素。当我输入不是图像的文件时,哪个会出错 那么如果抛出错误使该属性为 null,那么刀片 @if 语句上的这种方式不会进入 ->temporaryUrl() 我可以参考一下如何使这个为空吗? 【参考方案1】:您可以使用此验证器方法来处理失败时的任何操作
$validation = Validator::make($data,$rules);
if($validation->fails())
$this->property = null;
【讨论】:
【参考方案2】:我对此有另一种方法。我使用 livewire dehydrate
功能。在 livewire 组件中:
public function dehydrate()
if ($this->getErrorBag())
//Do whatever you like..
【讨论】:
以上是关于当使用 Livewire 在 Laravel Blade 中运行验证时,如何隐藏某些内容?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8 livewire 在任务完成或在其外部单击页面时隐藏菜单组件
使用 Laravel Livewire 和 Laravel Fortify 进行登录
错误:此路由不支持 POST 方法。支持的方法:GET、HEAD。 - 使用 laravel livewire