#php #laravel
Вопрос:
Я хочу автоматически установить флажок при заполнении поля в базе данных.
Я пытаюсь использовать @if
оператор в генераторе форм, но он не проверяет флажок.
Вот код, который я использую:
{!! Form::checkbox('offer_made', 'offer_made', @if(empty($phase_2->offer_made)) 1 @endif) !!}
Я отправляю это в представление в своем контроллере:
public function show(Order $order)
{
$order = Order::where('id', $order->id)->first();
$current_phase = $order->current_phase;
if($current_phase == 1) {
$phase_2 = Order_Phase_2::where('order_id', $order->id)->first();
return view('orders.phase-2', compact('order', 'phase_2'));
}
}
Когда я эхом $phase_2->offer_made
отражаюсь в представлении, оно показывает 1
, что значение проходит, но if statement
не работает внутри конструктора форм.
Кто-нибудь знает, как это исправить?
Уже спасибо!
Ответ №1:
Возможно, вы неправильно проверяете значение:
@if(empty($phase_2->offer_made)) 1 @endif)
Это выводит 1, если значение пустое. Вы должны проверить !empty()
, правильно ли я понимаю поле.
Так что вы можете добиться успеха в этом:
@if(!empty($phase_2->offer_made)) 1 @else 0 @endif)
Само ли значение 1/0? Используйте $phase_2->offer_made
непосредственно в качестве третьего параметра.
Комментарии:
1. Я получаю следующую ошибку:
syntax error, unexpected token "<", expecting ")" (View: /var/www/html/resources/views/orders/phase-2.blade.php)
2. Нет, я имел в виду просто поставить
!
перед пустым вызовом (). Если у вас сейчас синтаксическая ошибка, код был неверным раньше.