laravel中仅单个键的会话更新值

时间:2019-04-16 08:47:28

标签: php laravel

我的输入如下。

array:4 [  
  "_token" => "evktHCfCNZVQMNYXzntfHZkdNLZFqvOoYgU3yPKy"
  "name" => "Name"
  "orderId" => "5cb5943a6733a1555403834"
  "amount" => null
]

我将其存储到这样的会话中:

public function store(Request $request)
{    
    request()->session()->put('bookingInfo', $request->input());

    return redirect()->route('book.checkout');
} 

现在,我想更改会话中的amount值。我将如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

要更新值,您需要从会话中检索值并再次更新。

为此,您需要

$booking_info = $request->session()->get('bookingInfo');

然后您将获得一个数组。像普通数组一样更新

$booking_info["amount"] = 10; // anything you wanted

如果您需要将其重新放回会话中,可以执行此操作

$request->session()->put('bookingInfo', $booking_info);

编辑

如果您希望部分更新功能,则需要像这样单独存储。

$input = $request->all();
$request->session()->put('bookingInfo.name', $input['name']);
$request->session()->put('bookingInfo.orderId', $input['orderId']);
$request->session()->put('bookingInfo.amount', $input['amount']);

答案 1 :(得分:0)

Laravel 5+ //通过请求实例...

$request->session()->put('amount', 'value');

//通过全局助手...

session(['amount' => 'value']);

//要检索

session('amount');