Database 在Laravel中为表单提交添加默认值
在我的控制器中,我在create函数中输入了特定数据的目标列和源字段。但是,这里有一些默认值,如下所示:Database 在Laravel中为表单提交添加默认值,database,laravel,laravel-5,input,Database,Laravel,Laravel 5,Input,在我的控制器中,我在create函数中输入了特定数据的目标列和源字段。但是,这里有一些默认值,如下所示: $shipment->shipment_billing_status = 1; $shipment->created_by = $user_id; $shipment->cn_billtoName = request('cn_billtoName'); 如您所见,$shipping->shipping\u billing\u status默认值应始
$shipment->shipment_billing_status = 1;
$shipment->created_by = $user_id;
$shipment->cn_billtoName = request('cn_billtoName');
如您所见,$shipping->shipping\u billing\u status
默认值应始终为1。但是,在极端情况下,我希望用户能够(如果需要)在两个复选框中进行选择,标题为“不结算”和“不收费”,或者它们的值为2和3
因此,在这些极端情况下,如果未选中“不结算”或“不收费”复选框,我希望记录绝对变为1 如果输入值为
null
,则可以设置其默认值,如下所示:
$shipment->shipment_billing_status = request("shipment_billing_status", 1);
如果请求(“发货计费状态”)
为null
,它将$shipping->shipping\u billing\u status
设置为1
。我认为这不适用于”
(正在发送输入,但设置为空值),因此您可能需要这样处理:
$billingStatus = request("shipment_billing_status");
if(!$billingStatus || $billingStatus == ""){
$shipment->shipment_billing_status = 1;
} else {
$shipment->shipment_billing_status = $billingStatus;
}
这应该可以处理在
POST
数据中发送值或完全忽略它的情况。正如您所提到的发货\账单\状态
是一个复选框,如果未选中任何复选框,则表单将没有发货\账单\状态
字段
解决办法是:
$shipping->shipping\u billing\u status=(isset($request->shipping\u billing\u status)&&&!empty($request->shipping\u billing\u status))$请求->发货\开票\状态:1代码>
说明:条件是,如果$request具有发货\账单\状态字段且该字段不为空,则使用发货\账单\状态,否则将指定默认值 假设输入的复选框名称为status(单格,因为您只接受一种状态或不接受任何状态),我相信您可以这样做:
// Inside the store method.
$status = request('status') ?: 1;
$shipment->shipment_billing_status = $status;
希望这能起到作用。转到您的发货模型并添加这一行
$table->integer('Billing_status')->默认值(1)代码>如果未选中复选框,表单将不会提交它。然后您将在$request->status
中得到一个错误。