Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在Laravel中为表单提交添加默认值_Database_Laravel_Laravel 5_Input - Fatal编程技术网

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

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默认值应始

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

    $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
中得到一个错误。