РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
957 of 1392 menu

Функция old

Функция old применяется в шаблонах Blade для извлечения значений, которые были отправлены через форму, но не прошли валидацию. Первым параметром передаётся имя поля, вторым - значение по умолчанию, которое будет использовано, если старых данных нет. Функция возвращает строку или массив данных, сохранённых в сессии после неудачного запроса.

Синтаксис

old($key, $default = null)

Пример

Давайте создадим форму регистрации с полями name и email, которые будут сохранять свои значения после ошибки валидации:

<form method="POST" action="/register"> @csrf <div> <label for="name">Name</label> <input type="text" name="name" id="name" value="{{ old('name') }}"> </div> <div> <label for="email">Email</label> <input type="email" name="email" id="email" value="{{ old('email') }}"> </div> <button type="submit">Register</button> </form>

После того как пользователь отправит форму с некорректными данными, поля name и email будут автоматически заполнены предыдущими значениями.

Пример

Рассмотрим использование второго параметра для установки значения по умолчанию, если старых данных нет:

<form method="POST" action="/profile"> @csrf <div> <label for="username">Username</label> <input type="text" name="username" id="username" value="{{ old('username', 'guest') }}"> </div> <div> <label for="age">Age</label> <input type="number" name="age" id="age" value="{{ old('age', 18) }}"> </div> <button type="submit">Update</button> </form>

В этом примере, если поле username не было отправлено ранее, будет использовано значение 'guest', а для поля age - значение 18.

Пример

Покажем использование функции old с checkbox и select:

<form method="POST" action="/settings"> @csrf <div> <label for="notifications">Notifications</label> <input type="checkbox" name="notifications" id="notifications" value="1" @if(old('notifications')) checked @endif> </div> <div> <label for="role">Role</label> <select name="role" id="role"> <option value="user" @if(old('role') == 'user') selected @endif>User</option> <option value="admin" @if(old('role') == 'admin') selected @endif>Admin</option> </select> </div> <button type="submit">Save</button> </form>

Здесь для checkbox проверяется наличие значения, а для select используется сравнение для установки атрибута selected.

Пример

Рассмотрим работу функции old с массивом данных:

<form method="POST" action="/tags"> @csrf <div> <label for="tags">Tags</label> <input type="text" name="tags[]" id="tags" value="{{ old('tags.0') }}"> <input type="text" name="tags[]" value="{{ old('tags.1') }}"> <input type="text" name="tags[]" value="{{ old('tags.2') }}"> </div> <button type="submit">Submit</button> </form>

При работе с массивами полей можно использовать синтаксис с точкой для доступа к элементам. В примере выше поля tags[0], tags[1] и tags[2] получат свои соответствующие старые значения.

Смотрите также

  • функция old,
    которая используется в шаблонах Blade для получения старых данных формы
  • функция session,
    которая позволяет работать с сессионными данными
  • функция with,
    которая передаёт данные в представление
  • функция collect,
    которая создаёт коллекцию из массива данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить