【问题标题】:How do I hide something when a validation runs in Laravel Blade using Livewire?当使用 Livewire 在 Laravel Blade 中运行验证时,如何隐藏某些内容?
【发布时间】: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() }}" height="30%" width='50%'>
        @else
            <img src="{{url('storage/photos/'.$banner->header_image)}}" height="30%" width='50%' />
        @endif
    </div>

我想隐藏带有temporaryUrl() 的那个。

【问题讨论】:

  • 你到底要隐藏什么,输入元素还是错误包???
  • 我想隐藏 img 元素。当我输入不是图像的文件时,哪个会出错
  • 那么如果抛出错误使该属性为 null,那么刀片 @if 语句上的这种方式不会进入 ->temporaryUrl()
  • 我可以参考一下如何使这个为空吗?

标签: php laravel laravel-livewire


【解决方案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..
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      相关资源
      最近更新 更多