Laravel - 如何在会话中存储数组?

时间:2016-12-27 10:45:06

标签: php laravel

我正在尝试将$ user数组存储在会话中,但只有id存储在会话中。我怎样才能把first_name和last_name放在一起?

public function getIndex( Request $request )
{
    $this->data['firstNames'] = \DB::table('tb_users')->orderBy('first_name')->lists('first_name', 'id');
    $user = User::where('id', '=', $request->get('id'))->get()->toArray();
    Session::put('user', [ 'id' => $request->get('id'), 'last_name' => $request->get('last_name'), 'first_name' => $request->get('first_name'), ]);
    return view('dashboard.index',$this->data)->with('user', $user);
}

这是选择表格

<form action="" method="post">
{!! Form::select('id', $firstNames) !!}
<button type="submit" value="Submit">Go</button>
</form>

3 个答案:

答案 0 :(得分:1)

要将数组保存到会话,请使用以下语法的session()帮助程序:

session(['var' => $array]);

稍后您可以使用session('var')获取数组。

此外,您似乎使用了错误的数组结构。要在Form::select中使用数组,它应具有以下结构:

[1 => 'John', 2 => 'Dave']

https://laravel.com/docs/5.3/session#storing-data

答案 1 :(得分:0)

将多个数据保存到会话使用中:

public function getIndex( Request $request )
{

        $this->data['firstNames'] = \DB::table('tb_users')->orderBy('first_name')->lists('first_name', 'id');
        $user = User::where('id', '=', $request->get('id'))->get()->toArray();
        Session::set('user', [ 'id' => $request->get('id'), 'last_name' => $request->get('last_name'), 'first_name' => $request->get('first_name'), ]);
        return view('dashboard.index',['user'=>Session::get('user')]);
    }

答案 2 :(得分:0)

public function getAddToCart(Request $request,$id)
{   
    $product = Product::find($id);
    $oldCart = Session::has('cart') ? Session::get('cart') : null;
    $cart = new Cart($oldCart);
    $cart->add($product,$product->id);

    $request->session()->put('cart',$cart);
    return redirect()->route('product.index');
}

你可能会喜欢这样。这是我的测试网站http://lookoko.com ,当您单击添加到购物车时,程序会将项目数组放入会话。您可以在https://github.com/GoogleYY/shop-cart.git上找到所有代码

相关问题