Laravel if语句在表单生成器中选择复选框

dbf7pr2w  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(100)

我想在填写数据库中的字段时自动选中复选框。
我尝试在表单生成器中使用@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在表单构建器中不工作。
有人知道怎么解决吗?
谢谢你了!

yrefmtwq

yrefmtwq1#

您可能没有正确检查该值:

@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作为第三个参数。

hts6caw3

hts6caw32#

在php代码中不能使用blade语法,所以要使用三元运算符。2试试看:

{!! Form::checkbox('offer_made', 'offer_made',(!empty($phase_2->offer_made)) ? 'checked' : '') !!}

相关问题