繁体   English   中英

Laravel表单模型绑定中的复选框旧值

[英]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。因此,除了对值进行变异之外,没有简单的方法可以在其中实现数字系统。

有关文档,请参见https://laravel.com/docs/5.5/eloquent-mutators

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM