在我的控制器中,我已经获得了在我的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。
答案 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;
如果没有选择,则将shipping_billing_status默认为1。 我希望这回答了你的问题。 @Matthew你试过这个吗?