2 votes

Laravel - Comment stocker un tableau en session?

Je suis en train d'essayer de stocker le tableau $user en session mais seul l'ID est stocké en session. Comment puis-je stocker aussi le prénom et le nom de famille ?

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);
}

Voici le formulaire de sélection

{!! Form::select('id', $firstNames) !!}
Go

1voto

Alexey Mezenin Points 86781

Pour enregistrer un tableau en session, utilisez l'assistant session() avec cette syntaxe :

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

Plus tard, vous pouvez obtenir le tableau avec session('var').

Il semble également que vous utilisez une mauvaise structure de tableau. Pour utiliser un tableau dans Form::select, il doit avoir cette structure :

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

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

0voto

Rahul Points 1921

Pour enregistrer plusieurs données dans une session, utilisez :

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')]);
    }

0voto

Mark Points 8
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');
}

Vous pouvez faire comme ceci. Et ceci est mon site de test http://lookoko.com , lorsque vous cliquez sur Ajouter au panier, le programme mettra le tableau d'articles en session. Vous pouvez retrouver tous les codes sur https://github.com/GoogleYY/shop-cart.git

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X