如何将 @error 类放在 laravelcollective 上

Rik*_*udi 6 laravel

我刚刚安装 laravelcollective 5.8 并尝试将错误类放在输入表单上,如下所示

{{Form::number('nik', '', ['id'=>'nik','min'=>'1','max'=>'999999','class'=>'form-control @error('nik') is-invalid @enderror','placeholder'=>'E.g: 1234','required'])}}
Run Code Online (Sandbox Code Playgroud)

首先我得到了错误

syntax error, unexpected 'nik' (T_STRING), expecting ']'
Run Code Online (Sandbox Code Playgroud)

我尝试将 @error('nik') 更改为 @error("nik") ,但没有运气,这是检查元素上发生的情况

<input id="nik" min="1" max="999999" class="form-control <?php if ($errors->has(&quot;nik&quot;)) :
if (isset($message)) { $messageCache = $message; }
$message = $errors->first(&quot;nik&quot;); ?> is-invalid <?php unset($message);
if (isset($messageCache)) { $message = $messageCache; }
endif; ?>" placeholder="E.g: 1234" required="" name="nik" type="number" value="">
Run Code Online (Sandbox Code Playgroud)

这应该如何在本地 Laravel Blade 上

<input required min="1" max="999999" id="nik" class="form-control @error('nik') is-invalid @enderror" type="number" name="nik" placeholder="E.g: 1234">
Run Code Online (Sandbox Code Playgroud)

检查元素将是:

<input required="" min="1" max="999999" id="nik" class="form-control " type="number" name="nik" placeholder="E.g: 1234">
Run Code Online (Sandbox Code Playgroud)

有人知道如何解决这个问题,我会非常感激...谢谢...

cee*_*yoz 7

其中的所有内容{{ }}都是 PHP,而不是 Blade,因此像这样的指令@error在那里不起作用。

{{ Form::number('nik', '', [
    'id'=>'nik',
    'min'=>'1',
    'max'=>'999999',
    'class'=>'form-control @error('nik') is-invalid @enderror',
    'placeholder'=>'E.g: 1234',
    'required'
]) }}
Run Code Online (Sandbox Code Playgroud)

相反,以 PHP 方式进行:

'class' => 'form-control' . ($errors->has('nik') ? ' is-invalid' : null),
Run Code Online (Sandbox Code Playgroud)