当我尝试使用我的表单中的value=""
字段更新我的表时,查询失败并返回false,但我无法收到错误,告诉我什么是错误的。
$input = Input::get("textfield");
$option = Input::get("optionfield");
if($option == 0)
{
$option = null;
}
if(empty($input))
{
$input = null;
}
$update = MyTable::where("id", "=", 1)->update(["input" => $input, "option" => $option]);
如果我通过在输入字段中输入内容来更改值,则会更新。
怎么回事?
答案 0 :(得分:0)
基本上,当我们更新现有数据时,我们会将新条目与旧条目进行比较。在您的情况下,您没有进行比较。
所以,让我们这样做。我通常在我自己的情况下这样做:
首先获取现有数据
$row = MyTable::where("id", 1)->first();
然后,比较数据
$old_data = $row->toArray(); // convert to array first
$new_data = Input::all(); // assuming all inputs are allowed for updates
// now, lets compare values with additional index check
$changes = array_diff_assoc($new_data, $old_data);
// update row if has modifications
if(!empty($changes)) {
$row->update($changes);
}
希望这有助于解决您的问题。