如何在默认情况下选中复选框并从laravel中的数据库中检索旧值
本文介绍了如何在默认情况下选中复选框并从laravel中的数据库中检索旧值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个复选框,并且我希望在默认情况下选中我的复选框,如果用户取消选中该复选框并保存表单,我需要在检索或编辑表单数据时取消选中该复选框。
我的视图页面
提供此选项可从数据库正确返回旧数据,但我无法将复选框选为默认
控制器:
我已尝试
但我得到以下错误
不能将标量值用作数组
我也尝试过
请帮助我实现这一点 注意:IAM使用的是MySQL数据库,IAM使用的数据库类型是BIT,它根据用户输入存储0和1。
推荐答案
听起来您并不真正关心$assetDetail->Active的值是什么,只是希望选中该复选框,直到用户取消选中它。
这是否如您所愿:
还是我误读了您要做的事情?
对于此解决方案,它检查会话中是否有旧输入。如果有旧的输入数据,它使用'active'
键的存在来确定复选框[1]的状态。如果没有旧的输入数据,则默认为选中该复选框。
Input::old()
数组中。因此,如果键存在,则检查它;如果键不存在,则不检查它。您可以阅读有关"成功"表单控件的更多信息here。
编辑
根据注释,看起来创建和编辑AssetDetail对象使用了相同的表单。在创建时,您希望默认选中该复选框,在编辑时,您希望该复选框反映存储在数据库中的值。
我在上面发布的代码应该很接近,但您需要更改三元运算符中的硬编码true
。
如果$assetDetail在创建期间为NULL,您将需要:
如果$assetDetail在创建过程中是一个AssetDetail实例,您将需要:
这篇关于如何在默认情况下选中复选框并从laravel中的数据库中检索旧值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!