Я использую Laravel 5.3. Мой первый проект Laravel/опыт обучения В моем файле клика я использую следующий фрагмент, чтобы показать ошибки ниже поля после запроса PUT или POST.
В этом случае поле базы данных называется ПгвЬЫате
@if ($errors->has('firstName'))
<span class="help-block">
<strong>{{ $errors->first('firstName') }}</strong>
</span>
@endif
Теперь, так как у меня есть много полей, я держать repeatings этот блок для каждого поля. Я посмотрел документацию Laravel шаблонов Клинка (Расширение раздела Blade) и думал, что я мог бы сделать следующее в классе AppServiceProvider (AppServiceProvider .php)
public function boot()
{
//
Blade::directive('showIfError', function($fieldName) {
if ($errors->has('$fieldName')) {
echo "<span class='help-block'>
<strong> $errors->first('$fieldName') </strong>
</span>";
}
});
}
, а затем использовать
@showIfError ('FirstName')
Но не повезло ... Я получаю ошибку «Undefined переменной: ошибки»
Looks как коллекция ошибок Laravel не доступен в этой точке зрения файла.
Цените любую помощь. Благодарю.
Можете ли вы включить то, что вы хотите достичь? – Abrar
Я не хочу копировать и вставлять блок if (errors ...) для каждого поля в моей форме.Вместо этого я хочу использовать шаблон макро/лезвие, такой как @showIfError ('fieldName'), и окончательный вывод будет отображаться как приведенный выше блок span. –
Я нахожу, что кэширование просмотров мешает выходу. Если я удалю все файлы в папке хранилища (кеш), я могу заставить это работать с использованием сеанса («ошибки»), но он работает только один раз! Отправка формы снова с теми же ошибками не дает никакого выхода! Из-за этого я не могу полностью проверить, будет ли работать какой-либо из ответов :-( Кроме того, функция Blade :: directive не принимает 2 аргумента. –