如何在 laravel-validation-rules/credit-card 中获取验证消息

Eem*_*Jee 2 php validation credit-card laravel laravel-blade

我按照此处的说明使用 laravel 验证器获取信用卡信息。我终于可以让它工作了,但我的问题是如何让用户可以读取它的结果。我也像这样使用 Laravel 验证:

public static function validate()
{
    $val = [
           'card_num' => ['required', 'numeric', new CardNumber],
    ];

    return $val;
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我单击提交按钮并且该字段为空,则结果是card num??????这意味着需要卡号。如果我提供了一个无效的卡号,结果是validation.credit_card.card_length_invalid,我怎样才能使它具有与将该字段留空相同的结果?在刀片 php 中获取验证错误时,我喜欢这样做。

<div>
    <label>?????</label>
    <input type="text" name="card_num" id="credit-card" value="{{ old('card_num', $user['card_num']) }}" >
</div>
@if ($errors->has('card_num'))
<p class="alert-error">
    {{ $errors->first('card_num') }}
</p>
@endif
Run Code Online (Sandbox Code Playgroud)

更新

我看过它的源文件和消息,但我不想直接更改供应商文件。我试过添加customin validation.php,但它不起作用。

'custom' => [
    'validation.card_length_invalid' => '???????',
    'validation.credit_card' => '????????',
],
Run Code Online (Sandbox Code Playgroud)

Del*_*lan 5

您的数组validation.php接近正确。尝试将顶级密钥更改为 ,credit_card而不是custom源代码中那样。我不是 100% 确定,但我认为这个包custom不像普通的 Laravel 规则那样支持数组中的消息。例如:

'credit_card' => [
   'card_length_invalid' => '???????',
   'credit_card' => '????????',
],
Run Code Online (Sandbox Code Playgroud)