向现有会话添加密钥和值

时间:2013-12-18 15:34:17

标签: php session laravel laravel-4

我尝试在laravel已经存在的会话中添加一个键和一个值,这很好,但关键不是我传递的Session函数

public function selectCar() {

    $reservation['car'] = Input::get('id'); 

    if (Session::has('car')) {
        Session::forget('car');
    }

    if (Input::has('id'))
    {
        Session::push('reserveringen', $reservation['car']);
    }

    $data = Session::all();
    return Redirect::back()->with('success', 'Auto gekozen')->with('sessie', $data);

}

输出

[reserveringen] => Array
            (
                [pickupdate] => 'date'
                [pickuptime] => 'time'
                [returndate] => 'date'
                [returntime] => 'time'
                [0] => 37
            )

但它显示0代替'car'接下来的事情是,如果会话已经包含汽车,我希望旧的删除并被新的替换。有人能给我一个如何实现这个目标的例子吗?

1 个答案:

答案 0 :(得分:5)

您没有传递数组键,因此这是传递它的方法:

if (Input::has('id'))
{
    Session::push('reserveringen', array('car' => $reservation['car']));
}

但它会将一个新数组推送到该数组,而不是你的'car'键。

因此,您可能需要这样做才能正确放置“汽车”钥匙:

$reserveringen = Session::get('reserveringen');

$reserveringen['car'] = $reservation['car'];

Session::put('reserveringen', $reserveringen);