在Laravel中添加表单提交的默认值

时间:2017-12-04 19:42:28

标签: database laravel laravel-5 input

在我的控制器中,我已经获得了在我的create function中输入的特定数据的目标列和原始字段。但是,我在这里有一些默认值,如下所示:

    $shipment->shipment_billing_status = 1;
    $shipment->created_by = $user_id;
    $shipment->cn_billtoName = request('cn_billtoName');

正如您所看到的,$shipment->shipment_billing_status默认值应始终为1.但是,在极端情况下,我希望用户能够在两个复选框之间选择(如果需要),标题为“No Settle”和“无费用”,或其值为2和3.

因此,在极端情况下,如果未选中“No Settle”或“No Charge”复选框,我希望记录绝对为1。

4 个答案:

答案 0 :(得分:1)

您可以设置输入的默认值null,如下所示:

$shipment->shipment_billing_status = request("shipment_billing_status", 1);

如果request("shipment_billing_status")null,则会将$shipment->shipment_billing_status设置为1。我不认为这适用于""(输入已发送但设置为空值),因此您可能必须按此处理:

$billingStatus = request("shipment_billing_status");
if(!$billingStatus || $billingStatus == ""){
   $shipment->shipment_billing_status = 1;
} else {
   $shipment->shipment_billing_status = $billingStatus;
}

这应该处理在POST数据中发送值或完全省略它的情况。

答案 1 :(得分:0)

正如您所提到的,shipment_billing_status是一个复选框,如果未选中任何复选框,则表单将不会有shipment_billing_status字段。

解决方法是:

$shipment->shipment_billing_status = (isset($request->shipment_billing_status) && !empty($request->shipment_billing_status)) ? $request->shipment_billing_status : 1;

说明:条件是如果$ request具有shipment_billing_status字段并且它不为空,则使用shipment_billing_status,否则分配默认值。

答案 2 :(得分:0)

我们说输入的复选框的名称是状态(单个案例,因为您只接受一个状态或没有状态),我相信您可以这样做:

// Inside the store method.

$status = request('status') ?: 1;

$shipment->shipment_billing_status = $status;

希望这可以解决问题。

答案 3 :(得分:0)

转到您的货件模型并添加此行



$table->integer('Billing_status')->default(1);




刷新您的迁移。

将此添加到您的视图



<div class="form-group">
        {!! Form::label('Billing_status','Status:') !!}
        {!! Form::select('Billing_status',[1=>'shipment_billing_status',2=>'No Settle', 3=>No chare],null,['class'=>'form-control']) !!}

    </div>
&#13;
&#13;
&#13;

如果没有选择,则将shipping_billing_status默认为1。 我希望这回答了你的问题。 @Matthew你试过这个吗?