如何检查刀片模板中是否需要该字段?

时间:2020-01-09 10:43:34

标签: laravel laravel-blade laravel-validation

我在控制器中使用经典的验证规则:

$request->validate([
            'name' => 'required|min:5'
        ],

如果需要输入字段“名称”,如何检入刀片模板?

3 个答案:

答案 0 :(得分:0)

您可以在刀片文件中的$errors字段中使用'name'变量来显示错误消息。

$errors变量由Illuminate\View\Middleware\ShareErrorsFromSession middleware组提供的web middleware绑定到视图。

应用此中间件后,$errors变量将始终在您的视图中可用

更多信息:https://laravel.com/docs/6.x/validation#quick-displaying-the-validation-errors

答案 1 :(得分:0)

您只需在表单内添加以下代码即可检查验证错误:

@if(count($errors))

<div class="alert alert-danger">
    <ul>

        @foreach($errors->all() as $error)

        <li>{{ $error }}</li>

        @endforeach

    </ul>

</div>

@endif

还是要在后端的Controller功能之前检查前端的“名称”字段是否必需?如果要这样做,则需要在其中使用一些javascript代码进行检查

答案 2 :(得分:0)

HTML:

<form action="" method="post">
    <input data-required="" type="text" name="name">
</form>

jQuery:

<script>
    $('form').on('submit', function(event) {
        event.preventDefault();
        noErrors = true;
        $.each($('form [data-required]'), function(index, element) {
            if($(element).val() == '') {
                noErrors = false;
                $(element).css('border', '1px solid red');
            } else {
                $(element).css('border', 'unset');
            }
        });

        if(noErrors) {
            $(this).trigger('submit');
        }
    });
</script>

当然,您可以尝试更改元素样式,也可以在前端添加其他一些验证。