在Laravel中添加表单提交的默认值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Laravel中添加表单提交的默认值相关的知识,希望对你有一定的参考价值。
在我的控制器中,我已经获得了在我的create函数中输入的特定数据的目标列和原始字段。但是,我在这里有一些默认值,如下所示:
$shipment->shipment_billing_status = 1;
$shipment->created_by = $user_id;
$shipment->cn_billtoName = request('cn_billtoName');
如您所见,$shipment->shipment_billing_status
默认值应始终为1.但是,在极端情况下,我希望用户能够在两个复选框之间选择(如果需要),标题为“No Settle”和“No Charge”,或者他们的价值是2和3。
因此,在极端情况下,如果未选中“No Settle”或“No Charge”复选框,我希望记录绝对为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
数据中发送值或完全省略它的情况。
正如你所提到的,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,否则分配默认值。
假设输入的复选框的名称是状态(单个案例,因为您只接受一个状态或没有状态),我相信您可以这样做:
// Inside the store method.
$status = request('status') ?: 1;
$shipment->shipment_billing_status = $status;
希望这应该成功。
转到您的货件模型并添加此行
$table->integer('Billing_status')->default(1);
以上是关于在Laravel中添加表单提交的默认值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 中提交具有空白或空值和非空白值的表单