2017-01-03 29 views
1

私はコントローラに新しいセッションを作成し、それを私のデータベースからいくつかのデータで埋めました。Blade - Laravelでセッションデータを使用

public function index(Request $request) { 
    $products = Products::with('categories')->get()->take(5); 
    $request->session()->put('session_products', $products); 
    return view('shoppingcard.card'); 
} 

、次のコントローラ機能に私はセッションデータを取得:コントローラーコードザッツ

public function receiver(Request $request) { 
    if($request->session()->has('session_products')) { 
     echo $request->session()->get('session_products'); 
    } 
    else return "stop no session"; 

    return view('shoppingcard.endview'); 
} 

私が行う場合:return $request->session()->get('session_products');私は必要なものすべてを手に入れます。

{"id":5,"title":"Beautiful Unicorn","price":"20.00","sale_price":"15.00","status":"active","created_at":null,"updated_at":null,} 

は、今私はendviewブレードにいるよと出力データにしたい:ここ

は、セッションからのコンテンツのダミーデータです。

「タイトル」のように特定のデータを出力するにはどうすればよいですか?

+0

ああと申し訳ありませんが、私は、クッキーの事セッション全体に新たなんだ... – WellNo

答えて

1

、両方雄弁な方法です。

public function receiver(Request $request) { 
    if(! $request->session()->has('session_products')) { 
     return "stop no session"; 
    } 

    return view('shoppingcard.endview') 
      ->with('title', $request->session()->get('session_products')[0]['title']); 
} 

それともあなたは自分のビューにすべてを渡すことができます::

public function receiver(Request $request) { 
    if(! $request->session()->has('session_products')) { 
     return "stop no session"; 
    } 

    return view('shoppingcard.endview') 
      ->with('products', $request->session()->get('session_products')); 
} 

、ビューでそれを使用します。

が必要なのは、その情報を通常どおりに正確な方法を使用することです
@foreach($products as $product) 
    {{ $product['title'] }} 
@endforeach 
+0

ああ、私は新しい変数をopentingせずにデータにアクセスできると思った..申し訳ありませんが、私はcompletlyこれに新しいです..しかし、ありがとう! – WellNo

+0

いくつかのオプションを追加編集しました –

+0

ええ、ありがとう、私はそのコードを再生している:) – WellNo

1

タイトル要素にアクセスするには、json文字列を配列に変換する必要があります。

$decodedJsonString = json_decode($request->session()->get('session_products'), true); 

アクセスそれ

More about json_decode

$decodedJsonString[id]['title'];のようなUPDATE#1

使用:あなたは、文字列をデコードして、そのような配列にアクセスするには、PHPのjson_decode機能を使用する必要がこれを行うにはlaravelのwith()またはcompact()メソッドを使用してビューに送信する

with()およびcompac Tは、データがセッションにシリアライズされ、バックオブジェクトにアンシリアライズ

More about eloquent

+1

大丈夫、私はそれをしようが、なぜjson_decodeを使用してのだろうか?私は@AntonioカルロスRiberioが私に与えた解決策でも動作すると思う - そして、ありがとう! – WellNo

+0

あなたがビューに表示するためにそれを使用したいならば、あなたは(json)文字列から配列に変換しなければならないので、各要素にアクセスできるようになりますが、文字列全体が必要な場合は@antonio carlosの答えが最高です! –

+0

私はすべての助けに感謝します。このページはちょうど素晴らしいです:) – WellNo

1

セッションセッションをjsonとして保存します。 json_decodeでデコードし、各製品にアクセスできます。

コード:

$products = json_decode($request->session()->get('session_products'), true); 

foreach($products as $product) 
{ 
    echo $product['title']; 
} 
関連する問題