#laravel #forms #laravel-blade
Вопрос:
У меня проблема с установкой выбранного значения по умолчанию для текущего месяца, если в форме нет запроса. Вот код в файле blade:
<select name="month">
@php
$currMonth = date('m');
$currMonthName = date('F');
@endphp
@foreach($months as $month => $monthName)
<option @if($month == request()->get('month')) selected @endif value="{{ $month }}">{{ $monthName }}</option>
@endforeach
</select>
массив $месяцев от контроллера.
$months = [
'01' => 'January',
'02' => 'February',
'03' => 'March',
'04' => 'April',
'05' => 'May',
'06' => 'June',
'07' => 'July',
'08' => 'August',
'09' => 'September',
'10' => 'October',
'11' => 'November',
'12' => 'December'
];
Опция выбрать отлично работает при отправке запроса, за исключением значения по умолчанию при загрузке страницы. Я хочу установить значение по умолчанию на текущий месяц. Как этого добиться?
Комментарии:
1.
$selectedMonth = request()->get('month') ?? $currMonth;
и сравните с этой переменной.2.
->get()
Метод имеет 2 аргумента, ключ, который вы ищете, и значение по умолчанию, если его нет. Что-то вродеrequest()->get('month', date('m'))
в сочетании с вашим текущим кодом должно отлично работать для вас 🙂 (илиrequest()->get('month', $currMonth)
, если вы хотите использовать переменную)3. @Тим хорошо, это даже лучше 🙂
4. @GertB. Ха-ха, да, они оба закончили бы с одинаковым результатом, определенно приятно знать
??
, что такой вариант тоже есть 😀5. спасибо @TimLewis, проблема решена 🙂