dsaaqdz6223 2017-06-19 15:11
浏览 42
已采纳

Laravel在合并后获得更新的请求值

I am attempting to modify a Laravel Request object using merge to update the key trial_end.

I am doing this using the following code...

if ($this->request->get('trial_end', '')) {
    $this->request->merge(array('trial_end' => 'test'));
}
dd($this->request->all(), $this->request->get('trial_end'));

I expect $this->request->get('trial_end') to be test, but it is not. $this->request->all() returns what I expected.

Result of die dump

array:1 [
  "trial_end" => "test"
]
"12/4/2018" 

How come it is not returning the updated value?

  • 写回答

2条回答 默认 最新

  • dongli1920 2017-06-20 18:14
    关注

    Figured it out. The solution was to change

    $this->request->get('trial_end');

    to

    $this->request->input('trial_end');

    This works because input() adds the data in all() to getInputSource()->all() before doing a data_get on that, whereas get() just performs a data_get on the input parameters (pre-modifications).

    New code (with a change suggested by Alex)

    if ($this->request->has('trial_end')) {
        $this->request->merge(['trial_end' => 'test']);
    }
    dd($this->request->all(), $this->request->input('trial_end'));
    

    New results

    array:1 [
      "trial_end" => "test"
    ]
    "test"
    

    Hope this helps any others that come across this issue.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题