Оператор Laravel if в генераторе форм для установки флажка

#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. Нет, я имел в виду просто поставить ! перед пустым вызовом (). Если у вас сейчас синтаксическая ошибка, код был неверным раньше.