Laravel 不会通过移动勇敢的浏览器将变量保存到数据库

问题描述

编辑:移除勇敢的盾牌并没有解决移动设备上的问题。对变量进行硬编码确实有效(即使转储变量显示变量与硬编码值相同)。

我有一个控制器的一部分,它接收 url 中的路由,然后将变量保存到数据库中。这是通过 get 路由完成的。下面是代码的混淆版本。

public function getDataAndSave($handle,$integer=null){

    $value = array('id' => $id,'integer' => $integer,);   

    $ValuetoUpdate = Table::where('id','=',$id)->first();

    if(isset($ValuetoUpdate->id)){
        $ValuetoUpdate->update([
            'integer' => isset($value['integer']) ? $value['integer'] : $ValuetoUpdate->integer,'text' => isset($value['text']) ? $value['text'] : $ValuetoUpdate->text
        ]);
    }
}

//Route looks like this
Route::get('update-value/{handle}/{integer?}',['middleware' => [],'uses' => 'UpdateValueController@getDataAndSave','as' => 'UpdateValue.view','roles' => []]

问题 这在我的笔记本电脑上的 Brave 和其他浏览器中运行良好,但如果我在我的移动设备上使用勇敢的浏览器运行它,$integer 值保存为 0,而文本值保存为预期。当我对 $integer 或 $value 变量进行 vardump 时,它会显示正确的整数,即使在我的手机上使用有问题的浏览器也是如此。如果我关闭 Brave browser 的 Shields,它就会起作用。如果我硬编码一个整数值而不是像这样使用 $integer 更新整数变量:

    $ValuetoUpdate->update([
        'integer' => isset($value['integer']) ? 5 : $ValuetoUpdate->integer,]);

正如我所料,它保存了 5。

我知道这是不好的做法,但我将这个特定的数据保存在一个获取路径(而不是一个帖子)中。

有没有人遇到过这样的事情并有解决方案?我打算将每个盾牌保护从勇敢切换到寻找原因,但我想我会在这里问,以防将来有人遇到类似问题。

另外,这里是我在手机上保存后保存的对象上的vardump截图。你会看到我的收藏中有一个“更改”部分,它显示变量评级设置为 5,即使 eloquent 所做的保存正在保存 0。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...