Как использовать пойманное сообщение об исключении в сообщении проверки? - PullRequest
0 голосов
/ 12 октября 2019

У меня есть следующий класс:

class Blade implements Rule
{
    public function passes($attribute, $value)
    {
        try {
            Storage::disk('templates')->put('validator.blade.php', $value);
            View::make('emails.templates.validator', ['lead' => new Lead()])->render();
            return true;
        }
        catch (Exception $exception) {
            \Log::info($exception->getMessage());
            return false;
        }
    }

    public function message()
    {
        return 'The :attribute syntax is invalid.';
    }
}

В этом классе я просто пытаюсь проверить синтаксис блейда, перехватывая исключение render.

Теперь все это прекрасно работает,но я хочу, чтобы правило сообщало подробности об ошибке в сообщении.

Я попытался добавить следующий код в блок catch:

Validator::replacer('blade', function ($message, $attribute, $rule, $parameters) use ($exception) {
    return str_replace(':blade_exception', $exception->getMessage(), $message);
});

И затем я обновил message функция для:

public function message()
{
    return ':blade_exception';
}

К сожалению, она не выполняет замену должным образом. Я знаю, что это работает, когда я помещаю этот код в AppServiceProvider через расширение Validator, но мне бы очень хотелось, чтобы это работало через класс правил, чтобы сохранить мой код организованным.

Как использовать заменитель внутриправила класса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...