質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

5906閲覧

Laravelでsessionがうまく使えません

kaiya

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

2クリップ

投稿2018/02/08 05:21

PHP, laravel共に初心者です。
コントローラーでSessionに値をセットし、ブラウザ側で取得して表示させたいのですが、うまくいきません。。。
Undefined variable: num1 となってしまいます。

以下、コードになります。

controller

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Session; 7 8class displayController extends Controller 9{ 10 public function index() { 11 return view('form',['title'=>'calc']); 12 } 13 14 public function displayConfirmPage(Request $request) { 15 16 $num1 = $request->num1; 17 18 // パターン1 19 $request->session()->put('num1',$num1); 20     // パターン2 21 //Session::put('num1', $num1); 22 23 return view('confirm'); 24 } 25 26} 27
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Page Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" media="screen" href="main.css" /> <script src="main.js"></script> </head> <body> {{$num1}} <a href="/next">next</a> </body> </html>

ちなみにブラウザはChromeです。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ビューに変数を渡すので以下だと思います。

※セッションに情報が正しく設定されている前提です
案1:

php

1$num1 = $request->num1; 2$request->session()->put('num1',$num1); 3 4$num1 = $request->session()->get('num1'); 5return view('confirm')->compact('num1');

案2:

php

1$num1 = $request->num1; 2$request->session()->put('num1',$num1); 3 4return view('confirm')->with('num1',$request->session()->get('num1'));

参考URL:

/セッションの使用](https://readouble.com/laravel/5.5/ja/session.html#using-the-session)

投稿2018/02/08 05:38

編集2018/02/08 06:54
m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaiya

2018/02/08 05:58

ご回答ありがとうございます。 参考URLも読ませて頂きました、ありがとうございます。 重ねて質問させていただいてもよろしいでしょうか。 returnする前にSessionに値をセットするにはどうすればよろしいでしょうか。 $request->session()->put('num1',$num1); をすれば、num1をブラウザから見れると思ったのですが、うまくいかないようです、、。
m.ts10806

2018/02/08 06:26

putでセッションに情報をセットし、getでセッションから情報を取り出します。 私が提示したコードにはput書いていませんが、 提示したコードの前に $request->session()->put('num1',$num1); を書いておけば良いです。 ビューに表示したいのであれば、1つ目の参考URLのように渡したい情報を取り出してビューに向けてcompact()なり、with()なりで投げる必要があります。
kaiya

2018/02/08 06:31

ご回答ありがとうございます。 >ビューに表示したいのであれば、1つ目の参考URLのように渡したい情報を取り出してビューに向けてcompact()なり、with()なりで投げる必要があります 1度、ビューに投げる必要があるのですね。 教えて頂き、誠に有難うございました。
m.ts10806

2018/02/08 06:33

回答のコードを修正しました。 with()とcompact() 2パターンあるので好きな方で試してください。
kaiya

2018/02/08 06:58

ご丁寧に、誠に有難うございます。 先ほど、またLaravel関連で質問を挙げましたので、お手数でなければ、みて頂けると大変ありがたいです。 ご回答有難うございました。
m.ts10806

2018/02/08 07:00

色々質問を挙げられるのは結構かとは思いますが、1つずつ解決していきましょう。 (未解決の質問がずっと置いてあるのはよろしくないです)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問