[英]Checkbox old value in Laravel form model binding
我有一个要使用“表单模型绑定”构建的表单(这对我来说是新的东西),并且遇到了由于某些原因不想与我一起使用的复选框。
我有两个复选框可以转到数据库中的同一字段。 目前,我将它们格式化为:
{{ Form::checkbox('shipment_billing_status', '2', $shipment->shipment_billing_status) }}
{{ Form::checkbox('shipment_billing_status', '3', $shipment->shipment_billing_status) }}
这两个字段都被命名并进入数据库的“ shipment_billing_status”,默认值为2和3。但是我不确定如何从数据库中获取旧值。
目前,它们都显示为已选中,但是鉴于我的“ shipment_billing_status”字段等于1,因此此时都不应选中它们。
如何解决此问题?
您可以向Form :: checkbox传递4个参数,第三个参数为true或false。 当您调用$ shipment-> shipment_billing_status时,它将返回数据库中的任何值。 由于它的计算结果不为假,因此选中了该框。 我会像这样在您的模型上放置一个增变器:
public function getCheckboxShipmentBillingStatusAttribute(){
$bool = ($this->shipment_billing_status == 3)? true : false;
return $bool;
}
然后调用它而不是$ shipment-> shipment_billing_status
{{ Form::checkbox('shipment_billing_status', '2', $shipment->checkbox_shipment_billing_status) }}
它将返回true并选中是否等于3的框,否则返回false并显示为未选中。 表单模型绑定期望该字段将以true或false的形式存储在数据库中,并且不依赖于1或2或3。因此,除了对值进行变异之外,没有简单的方法可以在其中实现数字系统。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.